gpt4 book ai didi

aws-lambda - AWS lambda 的 node_module 错误,依赖项的最佳实践是什么?

转载 作者:行者123 更新时间:2023-12-04 21:39:01 26 4
gpt4 key购买 nike

我一直在尝试将我们的一个 node.js 应用程序转换并部署到 lambda 函数中,并且在 node_modules 依赖项方面遇到了一些问题——说它找不到某些模块。我首先创建了一个 package.json,npm 在本地安装依赖项,然后将节点模块文件夹复制到 lambda。

例如,我有一个需要 sequelize 和 convict 的项目,并且一直收到错误消息,说它无法找到 moment 模块作为子依赖项。我看到那个时刻包含在我的 node_modules 的根目录中,但它没有包含在 sequelize 模块下的子文件夹中。

但是,该项目在本地运行良好。 lambda 有什么区别,使用它部署较长的节点模块列表的最佳实践是什么 - 只是 node_modules 文件夹的副本?在我拥有的其他一些更简单的项目中,可以毫无问题地复制少量的 node_modules。

{
"errorMessage": "找不到模块'moment'",
"errorType": "错误",
“堆栈跟踪”: [
"Function.Module._resolveFilename (module.js:338:15)",
"Function.Module._load (module.js:280:25)",
"Module.require (module.js:364:17)",
“需要(module.js:380:17)”,
“版本(/var/task/node_modules/sequelize/node_modules/moment-timezone/moment-timezone.js:14:28)”,
“对象。(/var/task/node_modules/sequelize/node_modules/moment-timezone/moment-timezone.js:18:2)”,
"Module._compile (module.js:456:26)",
“Object.Module._extensions..js (module.js:474:10)”,
"Module.load (module.js:356:32)",
“Function.Module._load (module.js:312:12)”
]
}

最佳答案

我通过从包含我的 lambda 函数所需的所有数据的 zip 文件上传所有内容来解决这个问题。

您可以在本地计算机上创建项目并进行所需的所有更改,然后您要压缩的文件应该具有相同的结构,并且还可以看到有一个从 zip 文件加载代码的选项。

enter image description here

enter image description here

关于aws-lambda - AWS lambda 的 node_module 错误,依赖项的最佳实践是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31597782/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com