了解 CloudFormation 堆疊建立事件
在堆疊部署期間,會發生多個事件以建立、設定和驗證堆疊範本中定義的資源。了解這些事件能協助您最佳化堆疊建立程序,並簡化部署作業。
-
資源建立事件 – 當每個資源開始建立程序時,會設定
CREATE_IN_PROGRESS事件狀態。此事件表示資源正在佈建中。 -
最終一致性檢查 – 堆疊建立時間的相當大部分用於對堆疊建立的資源執行最終一致性檢查。在此階段,服務會執行內部一致性檢查,確保資源完全可運作,並符合每個 AWS 服務 定義的服務穩定標準。
-
組態完成事件 – 每個資源完成佈建的最終一致性檢查階段時,會設定詳細狀態為
CONFIGURATION_COMPLETE的事件。 -
資源建立完成事件 – 資源依照指定建立和設定完成,且組態與範本中指定的內容一致後,會設定狀態為
CREATE_COMPLETE的事件。
在不需要資源最終一致性檢查的場景中,例如驗證預生產環境堆疊組態或跨堆疊佈建,您可以利用 CONFIGURATION_COMPLETE 事件簡化堆疊建立程序。您可以透過多種方式使用此事件。例如,您可以將其做為視覺化信號,跳過等待資源或堆疊一致性檢查完成的步驟。或者,您可以使用它來建立使用持續整合和持續交付 (CI/CD) 建立自動化機制,以觸發額外動作。
重要
雖然利用 CONFIGURATION_COMPLETE 事件能加快堆疊建立速度,但您需了解其權衡利弊。首先,它僅支援支援漂移偵測的部分資源類型。如需支援漂移偵測的資源類型清單,請參閱 資源類型支援。此方法可能不適用於所有案例,尤其是在資源需要徹底的最終一致性檢查,以確保整個雲端環境 (例如在生產環境中) 的完整營運準備度的情況。建議您仔細評估您的部署需求以及每個資源一致性檢查的重要性。利用 CONFIGURATION_COMPLETE 事件最佳化部署速度,同時不影響基礎設施的完整性和可靠性。
由於無法保證一定會設定 CONFIGURATION_COMPLETE 事件,因此所有使用此事件的場景都應準備好在未設定 CREATE_COMPLETE 事件時,處理 CONFIGURATION_COMPLETE 事件。
堆疊部署開始時,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