需要帮助来处理 lambda NodeJS 的 ORM/ODM 包大小?

Need help to handle ORM/ODM bundle size for lambda NodeJS?

提问人:Gernii_Le 提问时间:11/17/2023 最后编辑:John RotensteinGernii_Le 更新时间:11/17/2023 访问量:33

问:

目前,我总共有 50 个 lambda 函数,它们都有 TypeORM 和 Typegooes,这使得每个 lambda 捆绑大小始终为 +1-2MB,仅用于 ORM/ODM。每次部署(~5 分钟)都会让团队受苦,并且客户端一直抱怨 lambda 函数冷启动时间太长(~600 毫秒)。

对于一个更长远的目标,我认为我需要改变一些东西来处理这个缺点。我不知道哪个更好,或者其他一些架构更适合处理这个问题:

  • 把所有东西都放在那里,不要试图做任何事情。微服务架构是最好的。
  • 将所有 ORM/ODM 重构为单独的 lambda/路径(/user、/service),一个 lambda 处理该路径的所有数据库查询。这是单体架构:
    • 优点:
      • 所有其他 lambda 捆绑大小仅为 ~ 20KB/每个。我只需要创建 1 个 lambda 来处理 ORM,1 个 lambda 来处理 ODM,以及每个路径(/user、/service)的数据库连接(我不认为将所有内容都放在 1 lambda 中是最好的用例)。
      • 将冷启动减少到每条路径仅 1 次,而不是每次触发 lambda 时。
    • 缺点:
      • 1 个错误可能导致所有路径失败

除了我提到的之外,还有什么方法比这更好吗?

PostgreSQL 亚马逊网络服务 AWS-Lambda ORM

评论

0赞 GustavoAdolfo 11/17/2023
您能否考虑将 lambda 层用于 ORM/ODM?
0赞 Gernii_Le 11/17/2023
我现在使用 esbuild 作为 bundle,我正在考虑使用 lambda 层,但客户端的幸福仍然是我的首要任务,因为如果我使用层,每个 func 仍然必须冷启动 ~ 600ms

答: 暂无答案