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