通过 Amazon ECS 创建 AWS CloudFormation 蓝/绿部署
您可以使用 AWS CloudFormation 通过 CodeDeploy 来管理 Amazon ECS 蓝/绿部署。通过定义蓝绿资源并指定要在 AWS CloudFormation 中使用的流量路由和稳定设置来生成部署。本主题介绍了由 CodeDeploy 管理的 Amazon ECS 蓝/绿部署与由 AWS CloudFormation 管理的部署之间的区别。
有关使用 AWS CloudFormation 管理 Amazon ECS 蓝/绿部署的分步说明,请参阅 AWS CodeDeploy 用户指南CloudFormation 中的使用 AWS 通过 CloudFormation 自动执行 ECS 蓝/绿部署。
使用 Amazon ECS 管理 AWS CloudFormation 蓝/绿部署在欧洲(米兰)、非洲(开普敦)或亚太地区(大阪)区域中不可用。
通过 Amazon ECS 和 CodeDeploy 的 AWS CloudFormation 蓝/绿部署之间的区别
AWS CloudFormation 堆栈模板对与 Amazon ECS 任务相关的资源和基础设施进行建模,还对部署的配置选项进行建模。因此,标准 Amazon ECS 蓝/绿部署与通过 AWS CloudFormation 创建的蓝/绿部署之间存在差异。
与标准 Amazon ECS 蓝/绿部署不同,您不用建模,也不用手动创建以下内容:
-
您不用通过指定一个唯一表示要部署的内容的名称,创建 AWS CodeDeploy 应用程序。
-
您不用创建 AWS CodeDeploy 部署组。
-
您不用指定 application specification file (AppSpec file)。通常由 AppSpec 文件管理的信息(如加权配置选项或生命周期事件)由
AWS::CodeDeploy::BlueGreen
挂钩管理。
此表汇总了部署类型之间的高级工作流程中的差异。
函数 | 标准蓝/绿部署 | 通过 AWS CloudFormation 进行蓝/绿部署 |
---|---|---|
指定 Amazon ECS 集群、Amazon ECS 服务、应用程序负载均衡器或Network Load Balancer、生产侦听器、测试侦听器和两个目标组。 | 创建一个用于指定这些资源的 CodeDeploy 部署组。 | 创建 AWS CloudFormation 模板对这些资源进行建模。 |
指定要部署的更改。 | 创建 CodeDeploy 应用程序 | 创建一个用于指定容器映像的 AWS CloudFormation 模板。 |
指定 Amazon ECS 任务定义、容器名称和容器端口。 | 创建一个用于指定这些资源的 AppSpec file。 | 创建 AWS CloudFormation 模板对这些资源进行建模。 |
指定部署流量转移选项和生命周期事件挂钩。 | 创建一个用于指定这些选项的 AppSpec file。 | 创建一个使用 AWS::CodeDeploy::BlueGreen 挂钩参数指定这些选项的 AWS CloudFormation 模板。
|
CloudWatch 警报。 |
创建触发回滚的 CloudWatch 警报。 |
在 AWS CloudFormation 堆栈级别配置触发回滚的 CloudWatch 警报。 |
回滚/重新部署。 | 指定回滚和重新部署选项。 | 取消 AWS CloudFormation 中的堆栈更新。 |
通过 Amazon ECS 监控 AWS CloudFormation 蓝/绿部署
您可以通过 AWS CloudFormation 和 CodeDeploy 监控蓝/绿部署。有关通过 AWS CloudFormation 进行监控的信息,请参阅
AWS AWS CloudFormation 用户指南
在 CodeDeploy 中查看蓝/绿部署的部署状态
-
Sign in to the AWS 管理控制台 and open the CodeDeploy console at https://console.amazonaws.cn/codedeploy
. 注意 使用您在 开始使用 CodeDeploy中使用的相同账户或 IAM 用户信息登录。
-
在 Deployments (部署) 中,将显示由 AWS CloudFormation 堆栈更新触发的部署。选择部署以查看 Deployment history (部署历史记录)。
-
选择部署以查看流量转移状态。请注意,不会创建应用程序和部署组。
-
以下内容适用于回滚或停止部署:
-
CodeDeploy 中将显示成功的部署,并显示该部署是由 AWS CloudFormation 启动的。
-
如果要停止并回滚部署,则必须在 AWS CloudFormation 中取消堆栈更新。
-