AWS Lambda函数返回"无法找到模块'索引'",但配置中的处理程序设置为索引

And*_*ont 31 javascript amazon-web-services node.js aws-lambda

正如我的标题解释我收到以下错误:

 {
  "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)"
  ]
}
Run Code Online (Sandbox Code Playgroud)

我尝试了在创建-la-lambda-function-in-aws-from-zip-filesimple-node-js-example-in-aws-lambda中提供的两种解决方案.

我的配置目前看起来像:在此输入图像描述

我的文件结构是: 在此输入图像描述

我的index.js处理函数如下所示:

exports.handler = function(event, context) {
Run Code Online (Sandbox Code Playgroud)

还有什么可能导致这个问题,除了上面这两个答案中所述的内容?我已经尝试了两种解决方案,并且我还为该功能分配了更多内存,这就是为什么它无法运行.

编辑 - 为了尝试,我创建了一个更简单的原始代码版本,它看起来像这样:

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();
Run Code Online (Sandbox Code Playgroud)

然而仍然无法使用相同的错误?

tah*_*sin 50

尝试压缩并上传文件夹lambda-create-timelapse的内容.不是文件夹本身.

  • 正如官方文档所说,在页面的末尾你可以看到重要信息:你压缩文件夹内容,而不是文件夹本身http://docs.aws.amazon.com/lambda/latest/dg/walkthrough-s3-events-管理用户创建测试功能创建,function.html (4认同)
  • 我不确定这真的回答了这个问题.也许你可以提供更多的细节(至于为什么这是一个供应而不是编码问题) (3认同)

Tyl*_*ler 15

如果其他人不清楚,请执行以下步骤:

步骤1 导航到项目的文件夹,然后打开该文件夹,以便您进入该文件夹: 夹

步骤2 选择要上传到Lambda的所有图像: 包含所选文件的文件夹

步骤3 右键单击并压缩您选择的文件: 右键单击菜单,突出显示压缩选项


这将为您提供.zip文件,这是您需要上传到Lambda的文件:

Archive.zip输出


有很多方法可以自动执行此操作,但这是手动过程.


Mic*_* Du 6

我自己曾经遇到过这个问题几次,这确实与压缩文件夹有关,而不仅仅是你想要的内容.

对于那些在终端工作的人......

在.js文件所在目录的INSIDE中,运行以下命令:

zip -r ../zipname.zip *

*是有指示客户端该文件夹内压缩所有内容,../zipname.zip告诉它来命名该文件zipname.zip并把它外面这个当前目录.