本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS CloudFormation 掛鉤目標篩選條件
本主題提供設定 AWS CloudFormation Hooks 目標篩選條件的指引。您可以使用目標篩選條件來更精細地控制調用勾點的時間和資源。您可以設定篩選條件,範圍從簡單的資源類型目標到更複雜的資源類型、動作和調用點組合。
若要在勾點組態中將一或多個堆疊名稱指定為篩選條件,請在 下新增TargetFilters金鑰HookConfiguration。
TargetFilters 支援下列屬性。
Actions-
指定要鎖定之動作的字串陣列。如需範例,請參閱「範例 1:基本目標篩選條件」。
有效值:
CREATE|UPDATE|DELETE注意
對於
RESOURCE、STACK和CLOUD_CONTROL目標,所有目標動作都適用。對於CHANGE_SET目標,只有CREATE動作適用。如需詳細資訊,請參閱掛鉤目標。 InvocationPoints-
字串陣列,指定對目標的調用點。
有效值:
PRE_PROVISION TargetNames-
字串陣列,指定要鎖定的資源類型名稱,例如
AWS::S3::Bucket。目標名稱支援具體的目標名稱和完整的萬用字元比對。如需詳細資訊,請參閱搭配 Hook 目標名稱使用萬用字元。
模式:
^[a-zA-Z0-9]{2,64}::[a-zA-Z0-9]{2,64}::[a-zA-Z0-9]{2,64}$上限:
50 Targets-
物件陣列,指定要用於目標篩選的目標清單。
目標陣列中的每個目標都有下列屬性。
Actions-
指定目標的動作。
有效值:
CREATE|UPDATE|DELETE InvocationPoints-
指定目標的調用點。
有效值:
PRE_PROVISION TargetNames-
要鎖定的資源類型名稱。
注意
您無法同時包含Targets物件陣列和 TargetNames、 Actions或 InvocationPoints陣列。如果您想要使用這三個項目 和 Targets,您必須在Targets物件陣列中包含它們。如需範例,請參閱「範例 2:使用Targets物件陣列」。
目標篩選條件的範例
本節提供您可以遵循的範例,為 AWS CloudFormation 勾點建立目標篩選條件。
範例 1:基本目標篩選條件
若要建立著重於特定資源類型的基本目標篩選條件,請使用 TargetFilters 物件搭配 Actions陣列。下列目標篩選條件組態會在指定目標操作的所有 Create、 Update和 Delete動作上叫用 勾點 (在此情況下為 RESOURCE和 STACK操作)。
{ "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus":"ENABLED", "TargetOperations": ["STACK", "RESOURCE"], "FailureMode":"WARN", "Properties":{}, "TargetFilters": { "Actions": ["Create", "Update", "Delete"] } } } }
範例 2:使用Targets物件陣列
對於更進階的篩選條件,您可以使用Targets物件陣列來列出特定目標、動作和調用點組合。下列目標篩選條件組態會在 S3 儲存貯體CREATE和 DynamoDB 資料表上叫用 Hook 之前和UPDATE動作。它同時適用於 STACK和 RESOURCE操作。
{ "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus":"ENABLED", "TargetOperations": ["STACK", "RESOURCE"], "FailureMode":"WARN", "Properties":{}, "TargetFilters": { "Targets": [ { "TargetName": "AWS::S3::Bucket", "Action": "CREATE", "InvocationPoint": "PRE_PROVISION" }, { "TargetName": "AWS::S3::Bucket", "Action": "UPDATE", "InvocationPoint": "PRE_PROVISION" }, { "TargetName": "AWS::DynamoDB::Table", "Action": "CREATE", "InvocationPoint": "PRE_PROVISION" }, { "TargetName": "AWS::DynamoDB::Table", "Action": "UPDATE", "InvocationPoint": "PRE_PROVISION" } ] } } } }