

# 了解 CloudFormation 堆栈创建事件
<a name="stack-resource-configuration-complete"></a>

在堆栈部署期间，将会发生多个事件来创建、配置和验证堆栈模板中定义的资源。了解这些事件有助您优化堆栈创建过程并简化部署。
+ **资源创建事件** – 当每个资源的创建过程启动时，都会设置一个 `CREATE_IN_PROGRESS` 事件的**状态**。该事件指示正在预置该资源。
+ **最终一致性检查** – 在堆栈创建过程中，很大一部分时间都用于对堆栈所创建资源执行最终一致性检查。在此阶段，服务会执行内部一致性检查，以确保资源完全正常运行并符合各项 AWS 服务所定义的服务稳定性标准。
+ **配置完成事件** – 当每个资源完成预置的最终一致性检查阶段后，将会设置 `CONFIGURATION_COMPLETE` 事件的**详细状态**。
+ **资源创建完成事件** – 按规定创建和配置好资源，并且配置与模板中指定的内容一致后，将会设置 `CREATE_COMPLETE` 事件的**状态**。

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

**重要**  
虽然利用 `CONFIGURATION_COMPLETE` 事件可以加快堆栈创建时间，但您也应该注意其利弊。首先，只有支持偏差检测的少部分资源类型才支持该功能。有关支持偏差检测的资源类型的列表，请参阅 [资源类型支持](resource-import-supported-resources.md)。这种方法可能不适用于所有场景，尤其是资源需要彻底的最终一致性检查以确保整个云环境（例如，在生产环境）完全准备就绪的情况。建议您仔细评测您的部署要求，以及每种资源的一致性检查的重要程度。利用 `CONFIGURATION_COMPLETE` 事件来优化部署速度，同时不影响基础设施的完整性和可靠性。  
由于不能保证会设置 `CONFIGURATION_COMPLETE` 事件，因此任何使用该事件的场景都应准备好在未设置任何 `CONFIGURATION_COMPLETE` 事件时处理 `CREATE_COMPLETE` 事件。

![\[该图显示了堆栈中资源创建事件和最终一致性检查事件的顺序。\]](http://docs.aws.amazon.com/zh_cn/AWSCloudFormation/latest/UserGuide/images/configuration-complete.png)


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

**`CREATE_IN_PROGRESS` 和 `CREATE_COMPLETE` 事件**
+ **[堆栈]：**`CREATE_IN_PROGRESS`
+ **[资源]：**ECR 存储库`CREATE_IN_PROGRESS`
+ **[资源]：**ECS 集群`CREATE_IN_PROGRESS`
+ **[资源]：**ECR 存储库 `CREATE_IN_PROGRESS`、`CONFIGURATION_COMPLETE`
+ **[资源]：**ECS 任务定义 `CREATE_IN_PROGRESS`
+ **[资源]：**ECS 集群 `CREATE_IN_PROGRESS`、`CONFIGURATION_COMPLETE`
+ **[资源]：**ECS 任务定义 `CREATE_IN_PROGRESS`、`CONFIGURATION_COMPLETE`
+ **[资源]：**ECS 服务 `CREATE_IN_PROGRESS`
+ **[资源]：**ECR 存储库`CREATE_COMPLETE`
+ **[资源]：**ECS 集群`CREATE_COMPLETE`
+ **[资源]：**ECS 服务 `CREATE_IN_PROGRESS`、`CONFIGURATION_COMPLETE`
+ **[堆栈]：**`CREATE_IN_PROGRESS`、`CONFIGURATION_COMPLETE`
+ **[资源]：**ECS 任务定义 `CREATE_COMPLETE`
+ **[资源]：**ECS 服务 `CREATE_COMPLETE`
+ **[堆栈]：**`CREATE_COMPLETE`