node.js - 多个 Lambda 公用的函数
我有一个基于 NodeJS 的项目,并托管在 AWS 上,我有几个函数希望在多个 Lambda 中使用,而不必复制粘贴。目前,我在构建时运行一个 shell 来复制所有这些文件,但缺点是我使用的所有包也必须安装在所有这些 Lambda 中。
所以我想知道是否有一种更干净的方法来做这件事。
附注:构建是通过 Github Actions 完成的
答案#1
你可以选择以下方式之一:
- 使用 Lambda 层,这样你可以冻结依赖版本,减少每个 Lambda 的体量,并避免重复的代码库。它允许你减少在使用它的函数上的重复代码。不过,有一个缺点是,如果层内部出现问题,所有导入这些层的函数都会受到影响。
- 在将 NodeJS(在 TypeScript 中更容易实现)函数部署到 AWS Lambda 之前,对其进行捆绑、压缩和树摇优化。