NodeJS AWS Lambda函数返回“找不到模块”index“”,但配置中的处理程序已设置为index

wecizke3  于 2023-01-08  发布在  Node.js
关注(0)|答案(8)|浏览(168)

正如我的标题所解释的,我得到了以下错误:

{
  "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)"
  ]
}

我已经尝试了creating-a-lambda-function-in-aws-from-zip-filesimple-node-js-example-in-aws-lambda中提供的两种解决方案
我的配置当前如下所示:x1c 0d1x
文件结构是:

我的index.js处理函数看起来像这样:

exports.handler = function(event, context) {

除了上面两个答案中所述的之外,还有什么可能导致这个问题?我已经尝试了两种解决方案,我也为函数分配了更多的内存,以防它无法运行。
编辑-为了尝试,我创建了一个更简单的版本,我的原始代码,它看起来像这样:

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();

但仍然不能处理同样的错误?

8fq7wneg

8fq7wneg1#

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

goucqfw6

goucqfw62#

如果其他人不清楚这一点,以下是步骤:

第1步导航到项目的文件夹,然后打开该文件夹,使您位于其中:

第2步选择您要上传到Lambda的所有图像:

第3步右键单击并压缩选定的文件:

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

有很多方法可以实现自动化,但这是一个手动过程。

k4aesqcs

k4aesqcs3#

我自己也遇到过几次这个问题,这确实与压缩文件夹有关,而不仅仅是像你应该做的那样压缩文件夹的内容。
对于那些在终端工作的人...
在.js文件所在的目录中,运行以下命令:
第一个月
*指示客户机压缩此文件夹中的所有内容,../zipname.zip告诉它将文件命名为zipname.zip并将其放在当前目录之外。

2jcobegt

2jcobegt4#

我以前遇到过同样的问题-我重新格式化了代码。

function lambdafunc1(event, context) {
...
...
...
}

exports.handler = lambdafunc1
von4xj4u

von4xj4u5#

当处理程序无法在第一级压缩文件中定位时,就会出现此问题。因此,无论何时看到此类错误,请确保该文件位于展开文件夹的第一级。
要修复此问题,请压缩文件,而不是包含文件的文件夹。

ig9co6j1

ig9co6j16#

正确的Lambda函数声明如下所示:

var func = function(event, context) {
   ...
};

exports.handler = func;

您可能有其他语法错误,导致index.js文件无法正确运行。请尝试使用其他文件在本地运行代码,并将index.js用作您自己的模块。

m2xkgtsf

m2xkgtsf7#

确保在处理程序中添加以下代码

exports.handler =  (event, context, callback) => {
...
}
11dmarpk

11dmarpk8#

发生这种情况的另一个原因是,在打包和部署之前,您没有在文件夹中执行npm install操作。

相关问题