无法在Lambda中导入模块

时间:2016-03-07 21:54:24

标签: javascript aws-lambda

我有一个简单的exports.js文件,我已压缩文件夹并将其上传到Lambda但在运行时它会出错:

"errorMessage": "Cannot find module 'exports'",
"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)"
]

任何帮助将不胜感激。 感谢

3 个答案:

答案 0 :(得分:2)

1.将文件命名为exports.js

2.在文件中指定处理程序exports.handler

exports.handler = function (event, context) 
{
    var YourSkill = new YourSkill();
    YourSkill.execute(event, context);
}

3.将lambda配置中的处理程序设置为exports.handler

4.仅提取文件夹的内容,如果您将文件夹压缩,也无法找到您的文件。

5.重命名zip文件exports.zip

答案 1 :(得分:0)

在您的目录中包含名为node_modules的目录。 压缩index.js + node_modules目录并上传。

答案 2 :(得分:-1)

我有类似的经历。虽然我所做的是无服务器,但我认为错误仍然相关,因为它也来自AWS lambda。这是我看到的错误:

Unable to import module 'src/handlers/list': Error
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/var/task/src/handlers/list.js:400:18)
    at __webpack_require__ (/var/task/src/handlers/list.js:20:30)
    at Object.<anonymous> (/var/task/src/handlers/list.js:370:18)
    at __webpack_require__ (/var/task/src/handlers/list.js:20:30)
    at /var/task/src/handlers/list.js:63:18
    at Object.<anonymous> (/var/task/src/handlers/list.js:66:10)

我正在使用webpack,我通过删除webpack.config.js中的库来解决它,库名称不言自明。

我所做的是从webpack.config.js中删除这一行:

const nodeExternals = require("webpack-node-externals");

如果您需要更多详细信息,请与我们联系。谢谢