瞭解 CloudFormation 堆疊建立事件 - AWS CloudFormation

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

瞭解 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_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