我有一个流程,我想要一个codepipeline在Github上的git提交上触发,通过一些测试和构建步骤并以codedeploy结束,代码将部署在具有蓝色/绿色部署的ECS集群上。但是我仍然坚持如何将图像转换为CodeDeploy步骤的最后一步。
管道如下所示:
Source(GitHub) - > Test - > Build,创建一个上传到ECR的docker镜像。工件包含appspec.yaml,taskdefinition.json,imagedefinitions.json。 - >部署(CodeDeployToECS),使用构建步骤中的工件。
管道的最后一步是使用“CodeDeployToECS”提供程序配置的。但是我无法理解的是我如何获得在构建步骤中创建的图像,以便在使用蓝色/绿色部署的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
通过上面的设置,Deploy步骤告诉我图像工件无效。任何指针,如果这是可能的或任何解决方法?
我找到了答案,创建一个图像工件,你需要生成文件imageDetail.json
这是一个JSON对象,其中一个属性名为ImageURI,带有图像的URI。我按照这个线程来实现这个事实:https://forums.aws.amazon.com/message.jspa?messageID=881131