微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

但是,这个项目在当地运行良好. lambda有什么区别,用它来部署一些有点长的节点模块的最佳实践是什么 – 只是node_modules文件夹的一个副本?在我所拥有的一些其他更简单的项目中,可以复制少量的node_modules而没有任何问题.

{
  "errorMessage": "Cannot find module 'moment'","errorType": "Error","stackTrace": [
    "Function.Module._resolveFilename (module.js:338:15)","Function.Module._load (module.js:280:25)","Module.require (module.js:364:17)","require (module.js:380:17)","VERSION (/var/task/node_modules/sequelize/node_modules/moment-timezone/moment-timezone.js:14:28)","Object. (/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)"
  ]
}

解决方法

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

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

enter image description here

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐