Я создал небольшую лямбда-функцию из мастерской cdk здесь. Я пишу лямбда-функцию на машинописном языке, развертывая ее через конвейер, который создает стек формирования облака, содержащий лямбда-функцию.
Я пытаюсь использовать SDK v3 в лямбда, как показано здесь. Но затем я вижу противоречивую документацию здесь.
Являются ли эти ошибки следствием того, что я пытаюсь использовать V3, а не должен, или по какой-то другой причине? Обработчик установлен правильно, функция запускается, но завершается с ошибкой:
{
"errorType": "Runtime.ImportModuleError",
"errorMessage": "Error: Cannot find module '@aws-sdk/client-sns'\nRequire stack:\n- /var/task/ReceiveMessageLoraThing.js\n- /var/runtime/UserFunction.js\n- /var/runtime/index.js",
"stack": [
"Runtime.ImportModuleError: Error: Cannot find module '@aws-sdk/client-sns'",
"Require stack:",
"- /var/task/ReceiveMessageLoraThing.js",
"- /var/runtime/UserFunction.js",
"- /var/runtime/index.js",
" at _loadUserApp (/var/runtime/UserFunction.js:100:13)",
" at Object.module.exports.load (/var/runtime/UserFunction.js:140:17)",
" at Object.<anonymous> (/var/runtime/index.js:43:30)",
" at Module._compile (internal/modules/cjs/loader.js:999:30)",
" at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)",
" at Module.load (internal/modules/cjs/loader.js:863:32)",
" at Function.Module._load (internal/modules/cjs/loader.js:708:14)",
" at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12)",
" at internal/main/run_main_module.js:17:47"
]
}
Файл развертывается как js с правильным набором обработчиков. Если я закомментирую оператор require
, он будет работать нормально:
// works
"use strict";
//const sns = require("@aws-sdk/client-sns");
exports.handler = async (event) => {
console.log("hello");
return true;
}
// doesn't work
"use strict";
const sns = require("@aws-sdk/client-sns");
exports.handler = async (event) => {
console.log("hello");
return true;
}
Нет узловых_модулей или слоев, сгенерированных с использованием кода из этого семинара, но прежде чем я отправлюсь туда, я хочу знать, могу ли я на самом деле использовать V3 на лямбда-выражении.
Благодарность