如何使用 blue/green-deployment 在代码管道中获取构建的 docker 图像到部署步骤

How to get a built docker image within a codepipeline to the deploy step with blue/green-deployment

我有一个流程,我希望代码管道在 git 提交时触发 Github,通过一些测试和构建步骤并在代码部署步骤结束部署在 blue/green-deployment 的 ECS 集群上。但我停留在如何将图像获取到 CodeDeploy 步骤的最后一步。

管道看起来像这样:

Source (GitHub) -> Test -> Build,创建上传到 ECR 的 docker 图像。工件包含 appspec.yaml、taskdefinition.json、imagedefinitions.json。 -> 使用构建步骤中的工件进行部署 (CodeDeployToECS)。

管道中的最后一步是使用 "CodeDeployToECS" 提供程序配置的。但是我无法理解的是如何让在构建步骤中创建的图像最终出现在使用 blue/green-deployment.

的 CodeDeploy 步骤中

我查看了本指南:https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-ecs-ecr-codedeploy.html 但他们使用源步骤中的图像作为 CodeDeploy 步骤中的工件,这与我的用例不匹配。

本指南是通过滚动更新与 ECS 一起部署的,该更新会即时创建一个 imagedefinitions.json 我正在尝试应用但不起作用:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-cd-pipeline.html

通过上述设置,部署步骤仅告诉我图像工件无效。如果这是可能的或任何解决方法,有任何指示吗?

我找到了答案,要创建图像工件,您需要生成文件 imageDetail.json,这是一个 JSON 对象,其中有一个 属性 名为 ImageURI 的图像 URI .我按照这个线程来了解这个事实:https://forums.aws.amazon.com/message.jspa?messageID=881131