从NodeJS lambda的图层中请求文件

时间:2019-05-22 14:45:55

标签: amazon-web-services aws-lambda

我正在尝试将lambda层中的config.json文件导入到在NodeJS 8.10上运行的lambda中。我在网上找到了一些教程,但无法使其导入文件。至于official documention,几乎没有迹象表明如何进行。

我有一个名为 LayerTester 的Lambda,其中包含以下index.js文件:

const a = require('/opt/config/config.json');

exports.handler = event => {

    console.log(a);

    return true;

};

我创建了一个名为 config 的新图层。我准备了一个.zip文件和一个名为config.json的文件。

er 我尝试压缩文件夹,也压缩文件本身。

然后我将图层链接到lambda:

enter image description here

我收到以下错误消息:

Response:
{
  "errorMessage": "Cannot find module '/opt/config/config.json'",
  "errorType": "Error",
  "stackTrace": [
    "Function.Module._load (module.js:474:25)",
    "Module.require (module.js:596:17)",
    "require (internal/module.js:11:18)",
    "Object.<anonymous> (/var/task/index.js:1:73)",
    "Module._compile (module.js:652:30)",
    "Object.Module._extensions..js (module.js:663:10)",
    "Module.load (module.js:565:32)",
    "tryModuleLoad (module.js:505:12)",
    "Function.Module._load (module.js:497:3)"
  ]
}

Request ID:
"2295bde4-fbaf-4880-89f4-a5b5eeca4a8b"

Function Logs:
START RequestId: 2295bde4-fbaf-4880-89f4-a5b5eeca4a8b Version: $LATEST
Unable to import module 'index': Error
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/var/task/index.js:1:73)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
END RequestId: 2295bde4-fbaf-4880-89f4-a5b5eeca4a8b

我尝试了不同的方法,但没有成功。如何成功导入我的配置文件?

1 个答案:

答案 0 :(得分:2)

如果config.json位于zip文件的根目录中,则应将其导入为/opt/config.json。图层名称不属于图层提取路径