我正在尝试创建一个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)”
]
}
请为此推荐一个解决方案。
答案 0 :(得分:0)
显然,您没有包含Lambda函数所需的byline
包。您必须在本地运行npm install
并将源代码和所有依赖项打包成zip文件,然后将其上传到Lambda。 Lambda不会为您运行npm install
,它希望上传所有依赖项。记录在案here。
答案 1 :(得分:0)
尝试
npm -s install --production --prefix <folder>
然后压缩并上传。