AWS Lambda找不到我的模块

时间:2017-08-09 08:32:57

标签: node.js aws-lambda

我正在尝试在AWS Lambda中对我自己的lib做一个简单的要求,但它无法找到它。我错过了什么?

var a = require('./lib/a');

exports.handler = function(event, context, callback) {
    callback(null, 'Testing');

}

是的,这在本地测试时有效,但在压缩和部署时则无效。我只是压缩文件,而不是目录,删除需要使它工作。

{
  "errorMessage": "Cannot find module './lib/a'",
  "errorType": "Error",
  "stackTrace": [
    "Function.Module._load (module.js:417:25)",
    "Module.require (module.js:497:17)",
    "require (internal/module.js:20:19)",
    "Object.<anonymous> (/var/task/index.js:1:77)",
    "Module._compile (module.js:570:32)",
    "Object.Module._extensions..js (module.js:579:10)",
    "Module.load (module.js:487:32)",
    "tryModuleLoad (module.js:446:12)",
    "Function.Module._load (module.js:438:3)"
  ]
}

目录结构: index.js LIB / a.js

1 个答案:

答案 0 :(得分:2)

  

我只是压缩文件

尝试从AWS Lambda控制台下载您的软件包。您将收到一个zip文件,并尝试在本地计算机上提取该文件。你能看到里面有lib的{​​{1}}文件夹吗?

有可能,您上传的zip文件可能错过了a.js目录。