我使用CodePipeline的全部目的是使用CodeDeploy自动部署ECS服务(蓝色/绿色部署)。
CodePipeline有以下几个阶段:
我不明白的是,在我的例子中,taskdef.json和appsec.yaml的目的。
我只做手动的(所以目前没有CodePipeline )是用相同的任务定义重新部署ECS服务。我不需要每次更新我的任务定义,因为我所推动的对接者映像总是有相同的标记(暂存或生产),所有其他的标记都是无标记的,所以只有一个可用。
那么,为什么必须输入这些文件,即使当我手动完成时,我不会更改任何东西,只需连续单击Next?
此外,我如何从CodeBuild步骤中包含它?
发布于 2022-04-15 09:18:21
我终于找到了怎么做。我首先做的是在我的Git项目中包含一个taskdef.json和appspec.yaml文件。由于我不需要这些文件被“自动更新”或“生成”,所以我只使用JSON中的最后一个任务定义,并将其放在taskdef.json中。
对于appspec.yaml,在对ECS服务进行手动部署时,您可以获得JSON格式的JSON格式,在最后一页中总结所有内容。

然后,您需要更新CodeBuild项目,以便将这两个工件上传到S3上--例如,在管道中,部署任务可以使用这些工件。
这个站点帮我把一切都做好了。
发布于 2021-11-13 22:07:54
在您的管道上,您可以输入taskdef.json文件和appspec.yml,以及usin。在每次部署时,CodePipeline都将获取可用的最新输入。
例如,您已经更改了一个环境变量值。这适用于taskdef.json文件。您需要做的是使用新版本的taskdef.json推动提交。这将触发使用新taskdef.json的新部署,并使用您在CodePipilie/CodeDeploy上指定的标记使用最新的ECR映像。
本教程解释了如何将所有内容整合在一起:https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-ecs-ecr-codedeploy.html
https://stackoverflow.com/questions/66383606
复制相似问题