我想创建一个CodePipeline,该代码可从CodeCommit源构建容器映像,然后以蓝色/绿色方式将新映像部署到我的ECS服务(EC2启动类型)。
问题在于BuildArtifact中的图像定义。管道在Deploy阶段失败,并显示以下错误:
“”无效的动作配置尝试从工件中读取图像工件文件时发生异常:BuildArtifact。“”
如何正确配置“ Amazon ECS(蓝色/绿色)”部署阶段,以便它可以使用最近创建的映像并进行部署....通过替换taskdef.json中的占位符IMAGE_NAME?
任何暗示,高度赞赏:D
Amazon ECS蓝色/绿色(或CodeDeployToECS)CodePipeline操作需要TaskDefinitionTemplateArtifact参数(请参阅[1])。
除了以上文件外,ECS Blue / Green部署还需要imageDetail.json(不是'imagedefinition.json')。文件结构和详细信息在此处[2]。将此文件添加到部署工件/版本控件的根目录。如果您不想手动添加此文件,则可以将ECR源操作用于CodePipeline,并使用您在ECS service / taskdef.json中使用的映像对其进行配置。为了清楚起见,所有这些都在[2]中讨论。
要了解如何将它们整合在一起,您还可以按照此处[3]的ECS Blue / Green部署分步说明进行操作。
参考:
[1] https://docs.aws.amazon.com/codepipeline/latest/userguide/reference-pipeline-structure.html#action-requirements:CodePipeline管道结构参考-CodePipeline中的操作结构要求[2] https://docs.aws.amazon.com/codepipeline/latest/userguide/file-reference.html#file-reference-ecs-bluegreen:图像定义文件参考-Amazon ECS蓝色/绿色部署操作的imageDetail.json文件[3] https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-ecs-ecr-codedeploy.html:教程:使用Amazon ECR源和ECS到CodeDeploy部署创建管道