Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services lambda找不到我的节点\ u模块_Amazon Web Services_Aws Lambda - Fatal编程技术网

Amazon web services lambda找不到我的节点\ u模块

Amazon web services lambda找不到我的节点\ u模块,amazon-web-services,aws-lambda,Amazon Web Services,Aws Lambda,我正试图用lambda上传节点模块,但出现“找不到模块”错误 我已经使用设置了一个真正简单的hello world js文件 var async = require('async'); 我已经手动将一个node\u modules/async文件夹复制到发行版中,我将node\u modules文件夹与hello world js文件一起复制 我用我的照片大小调整器lambda做了一个非常类似的事情,它也使用节点模块,并且可以正常工作。我做错了什么?zip文件的结构很重要。假设我有一个java

我正试图用lambda上传节点模块,但出现
“找不到模块”
错误

我已经使用设置了一个真正简单的hello world js文件

var async = require('async');
我已经手动将一个
node\u modules/async
文件夹复制到发行版中,我将node\u modules文件夹与hello world js文件一起复制


我用我的照片大小调整器lambda做了一个非常类似的事情,它也使用节点模块,并且可以正常工作。我做错了什么?zip文件的结构很重要。假设我有一个javascript函数,包含在一个名为
foo.js
的文件中,该文件依赖于其他节点模块

在我的开发环境中,我的结构如下:

devdir/
    foo/
        foo.js
        node_modules/
            <the nodejs modules>
$ unzip -vl foo.zip 
Archive:  foo.zip
 Length   Method    Size  Ratio   Date   Time   CRC-32    Name
 -------  ------  ------- -----   ----   ----   ------    ----
       0  Defl:N        0   0%  08-05-15 14:44  00000000  ./
    3047  Defl:N      981  68%  08-05-15 14:25  06e3e178 foo.js
       0  Defl:N        0   0%  08-03-15 13:37  00000000  node_modules/
       0  Defl:N        0   0%  08-03-15 13:37  00000000 node_modules/.bin/
     597  Defl:N      301  50%  03-05-15 14:29  9b0c2ba2  node_modules/.bin/uuid
       0  Defl:N        0   0%  07-16-15 08:32  00000000  node_modules/async/
    3454  Defl:N     1537  56%  06-28-15 18:37  967a5404  node_modules/async/CHANGELOG.md
<...>

确保你的zip文件是这样构造的,你应该没事。

我把这个放在这里作为一个备选答案。我花了整个下午试图让我的模块在Lambda中运行。我的结构与另一个答案中显示的相同,但不断出现“找不到模块”错误或Object.fs.readFileSync错误。事实证明,确保所有的js文件在压缩之前都是可执行的,这是我错过的一个重要步骤。把所有的文件都留给自己也会有好处

sudo chmod +x *.js -R
sudo chown myself.myself * -R
zip -r lambda.zip .

然后上传
lambda.zip
包并进行测试。

我猜这与包装有关。试试这个例子。。。它非常具体。从那里构建:错误就在我这方面——我的zip-gulp任务遗漏了package.json文件。谢谢@garnaat的回答。为了子孙后代,我发现Lambda更喜欢依赖项位于根级别,而不是传统的
node\u modules
目录中。当你说preference时,你的确切意思是什么?使用
node\u modules
目录是否不适合您?