本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS CloudFormation 勾點概念
下列術語和概念是了解和使用 AWS CloudFormation Hooks 的核心。
勾點
勾點包含在 CloudFormation 建立、更新或刪除堆疊或特定資源之前立即調用的程式碼。也可以在建立變更集操作期間叫用。勾點可以檢查 CloudFormation 即將佈建的範本、資源或變更集。此外,在 Cloud Control API 建立、更新或刪除特定資源之前,可以立即叫用勾點。
如果勾點識別不符合勾點邏輯中定義之組織準則的任何組態,則您可以選擇WARN使用者或 FAIL,以防止 CloudFormation 佈建資源。
勾點具有下列特性:
-
主動驗證 – 在建立、更新或刪除不合規資源之前,透過識別這些資源來降低風險、營運開銷和成本。
-
自動強制執行 – 在 中提供強制執行 AWS 帳戶 ,以防止 CloudFormation 佈建不合規的資源。
失敗模式
您的勾點邏輯可以傳回成功或失敗。成功回應將允許操作繼續。不合規資源的失敗可能會導致下列情況:
-
FAIL– 停止佈建操作。 -
WARN– 允許佈建繼續出現警告訊息。
在WARN模式下建立勾點是監控勾點行為的有效方式,而不會影響堆疊操作。首先,在 WARN 模式中啟用勾點,以了解哪些操作會受到影響。評估潛在影響之後,您可以將勾點切換到 FAIL 模式,以開始防止不合規的操作。
掛鉤目標
勾點目標指定勾點將評估的操作。這些可以是 上的操作:
-
CloudFormation 支援的資源 (
RESOURCE) -
堆疊範本 (
STACK) -
變更集 (
CHANGE_SET) -
Cloud Control API (
CLOUD_CONTROL) 支援的資源
您可以定義一或多個目標,指定勾點將評估的最廣泛操作。例如,您可以撰寫 Hook 目標RESOURCE以鎖定所有 AWS 資源STACK,並鎖定所有堆疊範本。
目標動作
目標動作會定義將叫用勾點的特定動作 CREATE(UPDATE、 或 DELETE)。對於 RESOURCE、 STACK和 CLOUD_CONTROL目標,所有目標動作都適用。對於CHANGE_SET目標,只有 CREATE動作適用。
勾點處理常式
對於自訂勾點,這是處理評估的程式碼。它與目標叫用點和目標動作相關聯,該動作會標記勾點的確切執行點。您可以編寫處理常式,以託管這些特定點的邏輯。例如,具有PRE目標動作CREATE的目標調用點會成為preCreate勾點處理常式。當相符的目標叫用點和服務執行相關聯的目標動作時,Hook 處理常式內的程式碼會執行。
有效值: (preCreate | preUpdate | preDelete)
重要
導致 狀態的堆疊操作UpdateCleanup不會叫用勾點。例如,在以下兩個案例中,不會叫用 Hook 的preDelete處理常式:
-
堆疊會在從範本中移除一個資源後更新。
-
會刪除具有更新類型取代的資源。
逾時和重試限制
勾點每次調用都有 30 秒的逾時限制,且限制為 3 次重試嘗試。如果調用超過逾時,我們會傳回錯誤訊息,指出勾點執行逾時。第三次重試後,CloudFormation 會將勾點執行標記為失敗。