Я создал лямбда-функцию на node.js и прикрепил к ней слой. Но когда я выполняю свою лямбда-функцию, она не читает JS, встроенную в слой. Пожалуйста, дайте мне знать, если я здесь ошибаюсь.
Следуя этому посту , создал слой 'my-utility' и загрузил nodejs.zip.
Консоль AWS> Лямбда> Слои> Создать слой
Структура слоя
my-utility
- nodejs
- node_modules
- myutil.js
- package.json
- package-lock.json
- nodejs.zip
myutil.js
function myFun(name) {
console.log("Hello.. " + name);
}
Лямбда-код (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;
};
После тестирования выше лямбды, он дает следующий результат:
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', она печатается как пустая. Это означает, что код слоя не внедряется во время лямбда-выполнения.
Код уровня INFO: {}