在AWS Lambda函数中找不到模块

时间:2016-08-15 07:55:12

标签: node.js amazon-web-services aws-lambda

当我上传并测试我的AWS Lambda函数时,我收到此错误:

{
  "errorMessage": "Cannot find module 'elasticsearch'",
  "errorType": "Error",
  "stackTrace": [
    "Function.Module._load (module.js:276:25)",
    "Module.require (module.js:353:17)",
    "require (internal/module.js:12:17)",
    "Object.<anonymous> (/var/task/PublishElasticsearch.js:17:21)",
    "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)"
  ]
}

以及require()模块的代码行:

var elasticsearch = require('elasticsearch')({
    host: config.ElasticHost
});

该功能成功运行唯一的问题是需要我的模块。

我在功能目录中运行npm install,我上传的ZIP结构如下:

PublishElasticsearch.zip
    PublishElasticsearch.js
    node_modules
        elasticsearch

有谁知道为什么我会收到这个错误?

2 个答案:

答案 0 :(得分:0)

你可以在这里尝试这个anwser:aws-lambda Cannot find module

看起来像是你可能遇到的同样问题

答案 1 :(得分:0)

我在 devDependencies 下列出了所有模块。将所有内容移到依赖项为我解决了。