了解 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