问题
由于有多个开发人员在一个项目上工作,因此存在多个源代码的 git 分支时会出现问题。每个分支具有相同的环境配置,但也可能因正在开发的功能而异。
要跟踪的最佳实践是什么,当前在 AWS Lambda 中部署了哪个分支?
我们使用无服务器来处理部署,并使用 Gitlab 作为 git 存储引擎。
我在项目中实现这一点的一种方法是使用 Lambda 别名和版本。
每次部署 lambda 时,版本号都会递增,并且部署的最新 lambda 会标记为$LATEST。
这些版本是唯一的,每次对 lambda 函数进行部署时都会增加,与您将从哪个分支部署代码无关。
使用分支名称作为别名指向特定版本的过程:
- 签出到要部署的分支并进行所需的更改。更改完成后,进行无服务器部署
- 等待部署完成
- 转到已部署的 lambda 并选择操作>创建别名
- 输入别名,该别名应该是部署代码的分支名称
- 选择最新版本号或所需的版本号,然后单击创建
创建别名后,您可以使用 lambda 名称调用 lambda。
如果要从 ApiGateway 调用 lambda,可以按照本文中提到的步骤操作: 使用 API 网关阶段变量管理 Lambda 函数
由于您使用的是无服务器框架,因此可以使用无服务器AWS别名插件完成我上面提到的步骤。
该插件自动执行我上面提到的所有步骤,包括为每个别名创建一个阶段。
您可以参考此示例来使用分支名称作为别名
您所要做的就是使用无服务器部署命令添加--alias=<ALIAS_NAME>
标志。
例如:sls deploy --alias=feature-test