本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在您的帳戶中啟用 Lambda Hook
下列主題說明如何在帳戶中啟用 Lambda Hook,這使其可在其啟用的帳戶和區域中使用。
啟用 Lambda Hook (主控台)
啟用 Lambda Hook 以用於您的帳戶
登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/cloudformation
開啟 AWS CloudFormation 主控台。 -
在畫面頂端的導覽列上,選擇您要建立連接所在的 AWS 區域 。
-
如果您尚未為勾點建立 Lambda 函數,請執行下列動作:
-
開啟 Lambda 主控台中的 Functions (函數) 頁面
。 -
建立您將與此勾點搭配使用的 Lambda 函數,然後返回此程序。如需詳細資訊,請參閱建立 Lambda 函數來評估 Lambda Hooks 的資源。
如果您已建立 Lambda 函數,請繼續下一個步驟。
-
-
針對勾點名稱,選擇下列其中一個選項:
-
提供簡短的描述性名稱,該名稱將在 之後新增
Private::Lambda::
。例如,如果您輸入
,則完整的勾點名稱會變成MyTestHook
Private::Lambda::
。MyTestHook
-
使用此格式提供完整的勾點名稱 (也稱為別名):
Provider
::ServiceName
::HookName
-
-
針對 Lambda 函數,提供要與這個勾點搭配使用的 Lambda 函數。您可以使用:
-
不含尾碼的完整 Amazon Resource Name (ARN)。
-
具有版本或別名尾碼的合格 ARN。
-
-
對於勾點目標,選擇要評估的內容:
-
堆疊 — 在使用者建立、更新或刪除堆疊時評估堆疊範本。
-
資源 — 評估使用者更新堆疊時的個別資源變更。
-
變更集 — 評估使用者建立變更集時的計劃更新。
-
Cloud Control API — 評估由 Cloud Control API 啟動的建立、更新或刪除操作。
-
-
針對動作,選擇哪些動作 (建立、更新、刪除) 將調用您的勾點。
-
對於勾點模式,選擇勾點在勾點調用 Lambda 函數傳回
FAILED
回應時回應的方式:-
警告 — 向使用者發出警告,但允許動作繼續。這對於非關鍵驗證或資訊檢查非常有用。
-
失敗 — 防止動作繼續。這有助於強制執行嚴格的合規或安全政策。
-
-
針對執行角色,選擇 Hook 用來叫用 Lambda 函數的 IAM 角色。您可以允許 CloudFormation 自動為您建立執行角色,也可以指定您已建立的角色。
-
選擇 Next (下一步)。
-
(選用) 對於勾點篩選條件,請執行下列動作:
-
針對資源篩選條件,指定哪些資源類型可以叫用勾點。這可確保僅針對相關資源叫用勾點。
-
針對篩選條件,選擇套用堆疊名稱和堆疊角色篩選條件的邏輯:
-
所有堆疊名稱和堆疊角色 – 只有在所有指定的篩選條件相符時才會叫用勾點。
-
任何堆疊名稱和堆疊角色 – 如果至少一個指定的篩選條件相符,則會叫用勾點。
注意
對於雲端控制 API 操作,會忽略所有堆疊名稱和堆疊角色篩選條件。
-
-
對於堆疊名稱,請包含或排除 Hook 調用中的特定堆疊。
-
針對包含,指定要包含的堆疊名稱。當您有一小組想要鎖定的特定堆疊時,請使用此選項。只有此清單中指定的堆疊才會叫用勾點。
-
針對排除,指定要排除的堆疊名稱。當您想要在大多數堆疊上叫用勾點,但排除幾個特定的勾點時,請使用此選項。除了此處列出的堆疊之外,所有堆疊都會叫用勾點。
-
-
對於 Stack 角色,根據其相關聯的 IAM 角色,從 Hook 調用中包含或排除特定堆疊。
-
針對包含,指定一或多個 IAM 角色 ARNs 至與這些角色相關聯的目標堆疊。只有這些角色啟動的堆疊操作才會叫用勾點。
-
針對排除,為您要排除的堆疊指定一或多個 IAM 角色 ARNs。除了由指定角色啟動的 以外,所有堆疊都會叫用勾點。
-
-
-
選擇 Next (下一步)。
-
在檢閱和啟用頁面上,檢閱您的選擇。若要進行變更,請在相關區段中選擇編輯。
-
當您準備好繼續時,請選擇啟用勾點。
啟用 Lambda Hook (AWS CLI)
在繼續之前,請確認您已建立 Lambda 函數,以及您將搭配此勾點使用的執行角色。如需詳細資訊,請參閱 建立 Lambda 函數來評估 Lambda Hooks 的資源 和 建立 Lambda Hook 的執行角色。
啟用 Lambda Hook 以用於您的帳戶 (AWS CLI)
-
若要開始啟用勾點,請使用下列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-aliasPrivate::Lambda::MyTestHook
\ --regionus-west-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
:設為FAIL
或WARN
。 -
LambdaFunction
:指定 Lambda 函數的 ARN。
-
-
使用下列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"
\ --regionus-west-2
相關資源
我們提供範本範例,供您用來了解如何在 CloudFormation 堆疊範本中宣告 Lambda Hook。如需詳細資訊,請參閱「AWS CloudFormation 使用者指南」中的 AWS::CloudFormation::LambdaHook。