在您的帳戶中啟用 Lambda Hook - AWS CloudFormation

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

在您的帳戶中啟用 Lambda Hook

下列主題說明如何在帳戶中啟用 Lambda Hook,這使其可在其啟用的帳戶和區域中使用。

啟用 Lambda Hook (主控台)

啟用 Lambda Hook 以用於您的帳戶
  1. 登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/cloudformation 開啟 AWS CloudFormation 主控台。

  2. 在畫面頂端的導覽列上,選擇您要建立連接所在的 AWS 區域 。

  3. 如果您尚未為勾點建立 Lambda 函數,請執行下列動作:

    如果您已建立 Lambda 函數,請繼續下一個步驟。

  4. 針對勾點名稱,選擇下列其中一個選項:

    • 提供簡短的描述性名稱,該名稱將在 之後新增Private::Lambda::。例如,如果您輸入 MyTestHook,則完整的勾點名稱會變成 Private::Lambda::MyTestHook

    • 使用此格式提供完整的勾點名稱 (也稱為別名): Provider::ServiceName::HookName

  5. 針對 Lambda 函數,提供要與這個勾點搭配使用的 Lambda 函數。您可以使用:

    • 不含尾碼的完整 Amazon Resource Name (ARN)。

    • 具有版本或別名尾碼的合格 ARN。

  6. 對於勾點目標,選擇要評估的內容:

    • 堆疊 — 在使用者建立、更新或刪除堆疊時評估堆疊範本。

    • 資源 — 評估使用者更新堆疊時的個別資源變更。

    • 變更集 — 評估使用者建立變更集時的計劃更新。

    • Cloud Control API — 評估由 Cloud Control API 啟動的建立、更新或刪除操作。

  7. 針對動作,選擇哪些動作 (建立、更新、刪除) 將調用您的勾點。

  8. 對於勾點模式,選擇勾點在勾點調用 Lambda 函數傳回FAILED回應時回應的方式:

    • 警告 — 向使用者發出警告,但允許動作繼續。這對於非關鍵驗證或資訊檢查非常有用。

    • 失敗 — 防止動作繼續。這有助於強制執行嚴格的合規或安全政策。

  9. 針對執行角色,選擇 Hook 用來叫用 Lambda 函數的 IAM 角色。您可以允許 CloudFormation 自動為您建立執行角色,也可以指定您已建立的角色。

  10. 選擇 Next (下一步)

  11. (選用) 對於勾點篩選條件,請執行下列動作:

    1. 針對資源篩選條件,指定哪些資源類型可以叫用勾點。這可確保僅針對相關資源叫用勾點。

    2. 針對篩選條件,選擇套用堆疊名稱和堆疊角色篩選條件的邏輯:

      • 所有堆疊名稱和堆疊角色 – 只有在所有指定的篩選條件相符時才會叫用勾點。

      • 任何堆疊名稱和堆疊角色 – 如果至少一個指定的篩選條件相符,則會叫用勾點。

      注意

      對於雲端控制 API 操作,會忽略所有堆疊名稱堆疊角色篩選條件。

    3. 對於堆疊名稱,請包含或排除 Hook 調用中的特定堆疊。

      • 針對包含,指定要包含的堆疊名稱。當您有一小組想要鎖定的特定堆疊時,請使用此選項。只有此清單中指定的堆疊才會叫用勾點。

      • 針對排除,指定要排除的堆疊名稱。當您想要在大多數堆疊上叫用勾點,但排除幾個特定的勾點時,請使用此選項。除了此處列出的堆疊之外,所有堆疊都會叫用勾點。

    4. 對於 Stack 角色,根據其相關聯的 IAM 角色,從 Hook 調用中包含或排除特定堆疊。

      • 針對包含,指定一或多個 IAM 角色 ARNs 至與這些角色相關聯的目標堆疊。只有這些角色啟動的堆疊操作才會叫用勾點。

      • 針對排除,為您要排除的堆疊指定一或多個 IAM 角色 ARNs。除了由指定角色啟動的 以外,所有堆疊都會叫用勾點。

  12. 選擇 Next (下一步)

  13. 檢閱和啟用頁面上,檢閱您的選擇。若要進行變更,請在相關區段中選擇編輯

  14. 當您準備好繼續時,請選擇啟用勾點

啟用 Lambda Hook (AWS CLI)

在繼續之前,請確認您已建立 Lambda 函數,以及您將搭配此勾點使用的執行角色。如需詳細資訊,請參閱 建立 Lambda 函數來評估 Lambda Hooks 的資源建立 Lambda Hook 的執行角色

啟用 Lambda Hook 以用於您的帳戶 (AWS CLI)
  1. 若要開始啟用勾點,請使用下列activate-type命令,將預留位置取代為您的特定值。此命令會授權勾點使用來自 的指定執行角色 AWS 帳戶。

    aws cloudformation activate-type --type HOOK \ --type-name AWS::Hooks::LambdaHook \ --publisher-id aws-hooks \ --execution-role arn:aws:iam::123456789012:role/my-execution-role \ --type-name-alias Private::Lambda::MyTestHook \ --region us-west-2
  2. 若要完成啟用勾點,您必須使用 JSON 組態檔案進行設定。

    使用 cat命令來建立具有下列結構的 JSON 檔案。如需詳細資訊,請參閱勾點組態結構描述語法參考

    $ cat > config.json { "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus": "ENABLED", "TargetOperations": [ "CLOUD_CONTROL" ], "FailureMode": "WARN", "Properties": { "LambdaFunction": "arn:aws:lambda:us-west-2:123456789012:function:MyFunction" } } } }
    • HookInvocationStatus:將 設定為 ENABLED 以啟用勾點。

    • TargetOperations:指定要執行勾點的操作。

    • FailureMode:設為 FAILWARN

    • LambdaFunction:指定 Lambda 函數的 ARN。

  3. 使用下列set-type-configuration命令以及您建立的 JSON 檔案來套用組態。將預留位置取代為您的特定值。

    aws cloudformation set-type-configuration \ --configuration file://config.json \ --type-arn "arn:aws:cloudformation:us-west-2:123456789012:type/hook/MyTestHook" \ --region us-west-2

我們提供範本範例,供您用來了解如何在 CloudFormation 堆疊範本中宣告 Lambda Hook。如需詳細資訊,請參閱「AWS CloudFormation 使用者指南」中的 AWS::CloudFormation::LambdaHook