我在 node.js 上创建了一个 lambda 函数并用它附加了一个层。但是当我执行我的 lambda 函数时,它没有读取捆绑在层中的 JS。如果我在这里犯了任何错误,请告诉我。
关注这篇文章并创建了一个图层“my-utility”并上传了 nodejs.zip。
AWS 控制台 > Lambda > 层 > 创建层
层结构
my-utility
- nodejs
- node_modules
- myutil.js
- package.json
- package-lock.json
- nodejs.zip
myutil.js
function myFun(name) {
console.log("Hello.. " + name);
}
Lambda 代码 (Node.js 10.x)
const myutil = require('/opt/nodejs/myutil.js');
exports.handler = async (event) => {
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
console.log('Layer Code :', myutil);
return response;
};
在上面的 lambda 测试之后,它给出了以下结果:
Response:
{
"statusCode": 200,
"body": "\"Hello from Lambda!\""
}
Request ID:
"5dbfd4ab-04d2-47eb-89dd-c9c6a650cbb0"
Function Logs:
START RequestId: 5dbfd4ab-04d2-47eb-89dd-c9c6a650cbb0 Version: $LATEST
2019-06-18T18:35:35.125Z 5dbfd4ab-04d2-47eb-89dd-c9c6a650cbb0 INFO Layer Code : {}
END RequestId: 5dbfd4ab-04d2-47eb-89dd-c9c6a650cbb0
REPORT RequestId: 5dbfd4ab-04d2-47eb-89dd-c9c6a650cbb0 Duration: 133.56 ms Billed Duration: 200 ms Memory Size: 128 MB Max Memory Used: 26 MB
如果您注意到,当我尝试打印“myutil”常量时,它会打印为空。这意味着,在 lambda 执行期间不会注入层代码。
信息层代码:{}