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的文件:

Archive.zip输出


有很多方法来自动化,但这是手动过程。

我自己碰到了这个问题几次,这确实与压缩文件夹,而不是像你应该的内容。

对于从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作为您自己的模块。