git版本控制lambda函数

pel*_*can 5 amazon-s3 amazon-web-services aws-sdk aws-lambda aws-api-gateway

为了使开发人员能够在本地编写其lambda函数,然后提交并推送至git,我们使用了SAM和SAM Local。

我们有大约50个lambda函数,并且预计这个数字会增长到数百甚至数千。

我想知道如何对lambda函数存储库进行分组,即是否应将所有由api网关触发的lambda函数分组到它们自己的存储库中,然后将所有由s3触发的所有lambda函数分组,等等...

挑战在于某些lambda函数具有自己的依赖关系,尝试在同一存储库中拥有多个具有不同依赖关系的lambda看起来很奇怪。一个lambda可能具有 npm软件包依赖关系,另一个可能具有 python库依赖关系等,所以我git commit和git将这两个lambda推入它们自己的单独存储库中,还是将它们组织在单独的文件夹中并推入相同的存储库中?还是每个lambda函数都有separe仓库?

将每个lambda提交给自己的存储库似乎不可行,尤其是随着这些函数的数量随着时间的增长而增加。

我是AWS工具的新手,不胜感激某人对此的见解!

也许您以前曾经遇到过这个问题?

das*_*mug 3

我会根据他们的目的对他们进行分组。例如,

  • REST API(HTTP 端点)
  • GraphQL API(HTTP 端点)
  • 身份验证 API(HTTP 端点)
  • 管理 API(HTTP 端点不是我们面向用户的产品的一部分,但对于管理我们的客户(例如计费系统和公司仪表板)至关重要)
  • 后台工作者(用于处理后台任务,如调整图像大小、发送电子邮件、聚合数据等)
  • 操作(不直接属于产品的一部分,但在日常操作中至关重要,例如 Slack WebHooks、CI/CD 触发器)

我还推荐一些工具,例如serverless-framework帮助管理每个项目的工具。

  • 因此,如果我只更改一组十个函数中的一个函数,即使其他函数没有更改,所有十个函数也会部署在一起(尽管我认为“无服务器”正在为此做一些事情)。当您只更改一个时,部署所有 10 个管道有点矫枉过正,但这对我来说比为 100 个功能管理 100 个不同的部署管道更明智。 (2认同)