我已经开始AWS Lambda
用于一个小型网站。我将有大约 10-15 个 lambdas 连接到不同的触发器(API、SQS 等)
我们将AWS SAM
用于创建我们的堆栈和NodeJS
大多数 lambda 方法。
我进行了很多搜索以找到 node_modules 的最佳实践,但无法真正得出结论。大多数提议的解决方案都包括层,我无法真正理解我应该如何构建这些层以及它们如何与本地测试一起工作。
问题:
“按原样”使用 node_modules 和将 node_modules 目录转换为层之间有什么区别?它会有益于性能吗?只有在加载冷 lambda 时才会受益吗?
如果层是解决方案,我是否应该为所有 lambda 使用一层(例如,某种 CI 脚本会在部署前“合并”它们)?或者使用所有 lambdas 中所有相同的 node_module 版本创建一个单一存储库解决方案?这似乎有点不干净,但我在寻找最佳解决方案时看到了这样的建议。
我正在寻找一个不会损害性能的体面解决方案,以及一个在本地工作并在部署代码之前测试我们的代码的选项。