sdg*_*sdh 6 git lambda amazon-web-services
我有一个位于 Git 存储库(GitHub)中的源代码。我有几个用于不同环境的分支(例如develop,production),我更喜欢使用受保护的分支在 GitHub 界面内管理发布。
我想要推送到一个分支来触发测试和部署。
但是,我也使用 CloudFormation 以可重现的方式部署 AWS 服务。我的问题是将 CloudFormation 与我的 Git 进程连接起来。
例如,AWS Lambda 函数在 CloudFormation 模板中的描述如下:
{
"Type" : "AWS::Lambda::Function",
"Properties" : {
"Code": "source code here"
}
}
Run Code Online (Sandbox Code Playgroud)
... Code“Amazon Simple Storage Service (Amazon S3) 存储桶或将您的源代码指定为内嵌文本。”(文档)
这意味着我需要在部署我的 CloudFormation 模板后执行一个手动步骤:
$BRANCH以下位置签出最新的 AWS Lambda 代码$REPO(这可以在 CI 提供者中完成,但我仍然必须在每个 repo 上单击“重建”)
我宁愿做的是定义我的CI管道内的CloudFormation模板。这应该可以使用 EC2 等,但我不知道如何。然后,Git 存储库 URL 将成为 CloudFormation 模板的参数。
如何在 CloudFormation 模板中定义 Git 挂钩、构建步骤和部署?这些步骤还应作为全新 CloudFormation 部署的一部分运行。
通常,您不会将其构建为 CloudFormation 部署的一部分。构建发生在 CloudFormation 部署之前。
因此,作为 Ci 管道(不在 CloudFormation 中)的一部分,您将:
/artifacts/{build number}/MyLambda.zip作为步骤 4 的一部分,您可以将步骤 3 中创建的工件的位置作为参数传递到 CloudFormation 堆栈中,并使用这些参数构建您的 Lambda 源代码位置。
此外,您还应该在 CloudFormation 模板中使用 Lambda 环境变量来指示开发/生产/暂存参数,并且不要将它们硬编码到您的 Lambda 包中。这允许您在 dev/prod/staging 之间重复使用相同的构建包。
| 归档时间: |
|
| 查看次数: |
4129 次 |
| 最近记录: |