AWS 拉姆达错误

AWS lambda error

我正在尝试创建一个 lambda 函数,该函数从 s3 存储桶中获取 apache 日志文件,将它们解析为 JSON 文档并将它们添加到 ES,如以下 link 中所建议:

https://github.com/awslabs/amazon-elasticsearch-lambda-samples

但我经常遇到以下错误:

{
    "errorMessage": "Cannot find module 'byline'",
    "errorType": "Error",
    "stackTrace": [
        "Object.<anonymous> (/var/task/index.js:19:18)",
        "Module._compile (module.js:409:26)",
        "Object.Module._extensions..js (module.js:416:10)",
        "Module.load (module.js:343:32)",
        "Function.Module._load (module.js:300:12)",
        "Module.require (module.js:353:17)”
    ]
}

请推荐一个解决方案。

显然您没有包含 Lambda 函数所需的 byline 包。您必须 运行 npm install 在本地将您的源代码和所有依赖项打包到一个 zip 文件中,然后将其上传到 Lambda。 Lambda 不会为您 运行 npm install 并且它希望上传所有依赖项。这已记录在案 here

尝试

npm -s install --production --prefix <folder>

然后压缩并上传。