我目前正在尝试使用CodePipeline自动化我们的开发过程。我的docker应用程序从Source(Github)获取 - >构建(AWS CodeBuild) - >部署。在最终部署过程中,我无法修改任务定义并重新启动群集任务。我知道我需要一个CloudFormation模板来执行这些操作,但是没有太多关于如何使用CloudFormation完成部署过程的文档(修改我的任务定义和更新我的任务)。是否可以通过AWS自主部署我的容器?
答案 0 :(得分:1)
使用不同方法进行反复试验后,更新ECS任务定义和服务的最佳方法是通过AWS CodeBuild在buildspec.yml的post_build部分中通过AWS CLI直接更新它们。您甚至可以使用使用提交ID设置的环境变量来跟踪每个图像的标记!
答案 1 :(得分:0)
如果您从CloudFormation部署了原始服务,那么CloudFormation可以非常轻松地将新的任务定义部署到ECS上。
以下是CloudFormation如何将服务部署到EC2容器服务的良好入门者:http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-ecs.html
一旦从CloudFormation部署了所有部署,您就有2个部署选项: 1)使用您需要的新部署片段更新CloudFormation模板,它将为您创建更改集并更新堆栈。 2)仅使用CloudFormation部署服务并将任务定义作为参数。这将允许您只修改堆栈的输入,而不是每次都更新整个事物。
当您在堆栈中更新它时,CloudFormation将自动尝试为您执行蓝/绿部署。
答案 2 :(得分:0)
对于您描述的方案,您可能需要尝试此示例https://github.com/awslabs/ecs-refarch-continuous-deployment