【问题标题】:AWS lambda errorAWS lambda 错误
【发布时间】:2017-02-11 10:13:56
【问题描述】:

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

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

【问题讨论】:

  • byline 是您在应用中安装的 NPM 模块吗?您是否将其包含在 Lambda 的部署包中?

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


【解决方案1】:

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

【讨论】:

  • 我尝试上传所有依赖项,但对部署包的结构稍作更改。我现在面临的错误是:{“errorMessage”:null }
【解决方案2】:

试试

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

然后压缩并上传。

【讨论】:

    猜你喜欢
    • 2018-01-21
    • 2021-05-04
    • 2018-02-28
    • 1970-01-01
    • 2018-06-17
    • 2017-03-10
    • 2018-11-11
    • 2020-12-03
    • 2018-09-21
    相关资源
    最近更新 更多