1

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

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)”
    ]
}

请为此推荐一个解决方案。

4

2 回答 2

0

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

于 2016-10-03T13:45:36.470 回答
0

尝试

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

然后压缩并上传。

于 2016-10-03T20:03:04.780 回答