错误:找不到模块& # 39;node-fetch& # 39; nRequire栈: n -



我没有得到任何错误在本地与节点获取包。json也有节点获取依赖,但当我部署在aws lambda然后这个依赖没有找到。从'node-fetch'中导入fetch;

{
"errorType": "Runtime.ImportModuleError",
"errorMessage": "Error: Cannot find module 'node-fetch'nRequire stack:n- /var/task/query1.jsn- /var/task/query1Main.jsn- /var/runtime/UserFunction.jsn- /var/runtime/index.js",
"trace": [
"Runtime.ImportModuleError: Error: Cannot find module 'node-fetch'",
"Require stack:",
"- /var/task/query1.js",
"- /var/task/query1Main.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"
]
}

必须将外部包声明为lambda的层https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html

我使用Node版本18.x有同样的问题,降级到16.x后修复

这可以在lambda页面中完成->向下滚动到Runtime settings

我希望你已经解决了这个问题,但我把这篇文章贴出来,以防有人觉得它有用。