AWS Lambda函数返回“无法find模块索引”,但configuration中的处理程序设置为索引
正如我的标题解释我收到以下错误:
{ "errorMessage": "Cannot find module 'index'", "errorType": "Error", "stackTrace": [ "Function.Module._resolveFilename (module.js:338:15)", "Function.Module._load (module.js:280:25)", "Module.require (module.js:364:17)", "require (module.js:380:17)" ] }
我已经尝试了两个解决scheme提供的创build一个lambda函数在aws从zip文件和simple-node-js-example-in-aws-lambda
我的configuration目前看起来像:
和我的文件结构是:
和我的index.js处理函数如下所示:
exports.handler = function(event, context) {
除上述两个答案中所述之外,还有什么可能导致这个问题呢? 我已经尝试了两种解决scheme,并且我还为这个函数分配了更多的内存,这就是为什么它不能运行。
编辑 – 为了尝试,我创build了一个更简单的版本,我的原始代码,它看起来像这样:
var Q = require('q'); var AWS = require('aws-sdk'); var validate = require('lambduh-validate'); var Lambda = new AWS.Lambda(); var S3 = new AWS.S3(); theHandler = function (event, context) { console.log =('nothing'); } exports.handler = theHandler();
但仍然不能用同样的错误?
尝试压缩并上传文件夹lambda-create-timelapse的内容。 不是文件夹本身。
如果对其他人不清楚的话,可以这样做:
第1步导航到您的项目的文件夹,并打开该文件夹,以便您在该文件夹中:
步骤2select您要上传到Lambda的所有图像:
步骤3右键单击并压缩您select的文件:
这会给你一个.zip文件,这是你需要上传到Lambda的文件:
有很多方法来自动化,但这是手动过程。
我自己碰到了这个问题几次,这确实与压缩文件夹,而不是像你应该的内容。
对于从terminal工作的人来说
在.js文件所在的目录的INSIDE下,运行以下命令:
zip -r ../zipname.zip *
*
指示客户端压缩此文件夹中的所有内容, ../zipname.zip
告诉它命名文件zipname.zip
并将其放置在当前目录之外。
我以前也有同样的问题 – 我重新编写了代码。
function lambdafunc1(event, context) { ... ... ... } exports.handler = lambdafunc1
正确的Lambda
函数声明如下所示:
var func = function(event, context) { ... }; exports.handler = func;
您可能有其他语法错误,防止正确运行index.js
文件。 尝试使用另一个文件在本地运行代码,并使用index.js
作为您自己的模块。