繁体   English   中英

我应该如何使用 NodeJS 在 AWS Lambda 上处理 node_modules?

[英]How should I handle node_modules on AWS Lambda using NodeJS?

我已经开始在一个小型站点上使用AWS Lambda 我将有大约 10-15 个 lambda 连接到不同的触发器(API、SQS 等)

我们将使用AWS SAM为大多数 lambda 方法创建我们的堆栈和NodeJS

我已经搜索了很多以找到 node_modules 的最佳实践,但无法真正得出结论。 大多数提议的解决方案都包含层,我无法真正理解我应该如何构建这些层以及它们如何与本地测试并行工作。

问题:

  1. “按原样”使用 node_modules 和将 node_modules 目录转换为层有什么区别? 它会有益于性能吗? 只有在加载冷 lambda 时它才会受益吗?

  2. 如果层是解决方案,我是否应该为所有 lambda 使用一层(例如,某种将在部署前“合并”它们的 CI 脚本)? 或者在所有 lambda 表达式中使用所有相同的 node_module 版本创建一个单一存储库解决方案? 这似乎有点不干净,但我在寻找最佳解决方案时看到了这样的建议。

我正在寻找一个不错的解决方案,它不会损害性能,并且可以选择在本地工作并在部署之前测试我们的代码。

将层中的库分离将在您的函数中共享它们,从而减少包大小和冷启动时间。 多少取决于您的应用程序,但我会说对于少数功能,除非您使用大量库,否则将它们捆绑在部署包中会更简单。 如果它增长到更多的函数和库配置,它可以帮助创建一个 lambda 层,但我不会从一开始就这样做。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM