aws-lambda 找不到模块

13 浏览
0 Comments

aws-lambda 找不到模块

在从zip文件上传代码时,我在aws-lambda控制台中一直遇到这个错误。我尝试过上传其他zip文件,它们都可以正确工作。在zip文件中,.js文件名为"CreateThumbnail.js"。我相信处理程序的命名也是正确的,即"CreateThumbnail.handler"。node_modules子目录也已设置好。有人有任何想法吗?

0
0 Comments

问题原因:在上传文件时,如果将.js文件放在一个文件夹内,AWS Lambda会在解压缩文件时尝试找到与给定的handler名称相同的.js文件,但是如果该文件在文件夹内,它将无法找到。

解决方法:确保将.zip文件制作成不包含文件夹的形式,以避免出现上述问题。

0
0 Comments

aws-lambda Cannot find module问题的原因是文件和路径没有被正确地命名和引用。解决方法如下:

1. 将文件命名为exports.js。

2. 在文件中将handler命名为exports.handler。

3. 在lambda配置中设置handler为exports.handler。

4. 压缩文件时,只压缩文件夹的内容而不是整个文件夹,并将zip文件重命名为exports.zip。

实际文件的名称并不重要,关键是要完整地指定文件和路径。我的zip文件中有一个名为scripts的目录,在其中有几个包含exports.handler的文件。在Lambda控制台的Handler中,我指定为scripts/transforms.handler。

0
0 Comments

在使用AWS Lambda时,有一种可能的问题是,如果你使用PowerShell的Compress-Archive命令创建的zip文件上传Lambda函数,会导致AWS将文件提取到一个扁平的树结构中(没有子目录),而文件名中带有反斜杠。

其中一个关于这个bug报告的评论中提供了使用命令行版本7zip替代Compress-Archive的说明。这对我来说起作用了。

因此,出现这个问题的原因是使用PowerShell的Compress-Archive创建的zip文件存在一个bug,导致AWS在解压文件时将其提取到扁平的树结构中,并在文件名中包含反斜杠。

解决方法是使用命令行版本的7zip来替代Compress-Archive命令。这样可以避免AWS在解压时出现问题。

以上就是关于AWS Lambda中出现"Cannot find module"问题的原因和解决方法。

0