AWS lambda错误

时间:2016-10-03 12:49:26

标签: amazon-web-services amazon-s3 aws-lambda amazon-elasticsearch

我正在尝试创建一个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)”
    ]
}

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

尝试

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

然后压缩并上传。