Amazon CloudFormation 堆栈创建事件 - Amazon CloudFormation
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Amazon CloudFormation 堆栈创建事件

堆栈部署期间,大部分时间都用于堆栈所创建资源的创建、配置和运行最终一致性检查。当每个资源开始创建过程时,都会设置 CREATE_IN_PROGRESS 事件的状态。在最终一致性检查阶段,该服务会执行内部一致性检查,以确保资源完全运行并符合每个 Amazon Web Service 所定义的服务稳定标准。当每个资源完成预调配的最终一致性检查阶段后,将设置 CONFIGURATION_COMPLETE 事件的详细状态。按照规定创建和配置资源并且配置与模板中指定的内容相匹配后,将设置 CREATE_COMPLETE 事件的状态

在不需要资源最终一致性检查的情况下,例如验证预生产堆栈配置或跨堆栈预调配,您可以利用 CONFIGURATION_COMPLETE 事件来简化堆栈创建过程。您可以通过多种方式来使用此事件。例如,您可以将其用作视觉信号,以跳过等待资源的过程或堆栈一致性检查完成的过程。或者,您可以使用持续集成和持续交付(CI/CD)来创建自动机制,以触发其他操作。

重要

虽然利用 CONFIGURATION_COMPLETE 事件可以加快堆栈创建时间,但您也应该注意其利弊。首先,只有支持偏差检测的少部分资源类型才支持该功能。有关支持偏差检测的资源类型的列表,请参阅 资源类型支持。这种方法可能不适用于所有场景,尤其是资源需要彻底的最终一致性检查以确保整个云环境(例如,在生产环境)完全准备就绪的情况。建议您仔细评测您的部署要求,以及每种资源的一致性检查的重要程度。利用 CONFIGURATION_COMPLETE 事件来优化部署速度,同时不影响基础设施的完整性和可靠性。有关如何充分利用此事件并了解其对您的特定应用场景的影响的指导,请参阅详情博客《我们如何通过乐观的稳定操作加快 Amazon CloudFormation 部署速度》https://www.amazonaws.cn/blogs/devops/how-we-sped-up-aws-cloudFormation-deployments-with-optimistic-stabilization/

由于不能保证会设置 CONFIGURATION_COMPLETE 事件,因此任何使用该事件的场景都应准备好在未设置任何 CONFIGURATION_COMPLETE 事件时处理 CREATE_COMPLETE 事件。


   该图显示了堆栈中资源创建事件和最终一致性检查事件的顺序。

堆栈部署开始时,AWS::ECR::RepositoryAWS::ECS::Cluster 资源都会启动创建过程(ResourceStatus = CREATE_IN_PROGRESS)。当 AWS::ECR::Repository 资源类型开始最终一致性检查(DetailedStatus = CONFIGURATION_COMPLETE)后,AWS::ECS::TaskDefinition 资源就可以开始创建过程了。同样,一旦 AWS::ECS::TaskDefinition 资源开始最终一致性检查,AWS::ECS::Service 资源就会开始创建过程。

CREATE_IN_PROGRESSCREATE_COMPLETE 事件
  • [堆栈]:CREATE_IN_PROGRESS

  • [资源]:ECR 存储库CREATE_IN_PROGRESS

  • [资源]:ECS 集群CREATE_IN_PROGRESS

  • [资源]:ECR 存储库 CREATE_IN_PROGRESSCONFIGURATION_COMPLETE

  • [资源]:ECS 任务定义 CREATE_IN_PROGRESS

  • [资源]:ECS 集群 CREATE_IN_PROGRESSCONFIGURATION_COMPLETE

  • [资源]:ECS 任务定义 CREATE_IN_PROGRESSCONFIGURATION_COMPLETE

  • [资源]:ECS 服务 CREATE_IN_PROGRESS

  • [资源]:ECR 存储库CREATE_COMPLETE

  • [资源]:ECS 集群CREATE_COMPLETE

  • [资源]:ECS 服务 CREATE_IN_PROGRESSCONFIGURATION_COMPLETE

  • [堆栈]:CREATE_IN_PROGRESSCONFIGURATION_COMPLETE

  • [资源]:ECS 任务定义 CREATE_COMPLETE

  • [资源]:ECS 服务 CREATE_COMPLETE

  • [堆栈]:CREATE_COMPLETE

有关更多信息,请参阅 查看堆栈事件历史记录DescribeStackEvents API 操作