本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
搭配 Hook 目標名稱使用萬用字元
您可以使用萬用字元做為目標名稱的一部分。您可以在 Hook 目標名稱中使用萬用字元 (* 和 ?)。星號 (*) 代表字元的任意組合。問號 (?) 代表任何單一字元。您可以在目標名稱中使用多個 *和 ? 字元。
範例 :Hook 結構描述中目標名稱萬用字元的範例
下列範例以 Amazon S3 支援的所有資源類型為目標。
{ ... "handlers": { "preCreate": { "targetNames": [ "AWS::S3::*" ], "permissions": [] } } ... }
下列範例符合名稱中具有「Bucket」的所有資源類型。
{ ... "handlers": { "preCreate": { "targetNames": [ "AWS::*::Bucket*" ], "permissions": [] } } ... }
AWS::*::Bucket* 可能會解析為下列任何具體資源類型:
-
AWS::Lightsail::Bucket -
AWS::S3::Bucket -
AWS::S3::BucketPolicy -
AWS::S3Outpost::Bucket -
AWS::S3Outpost::BucketPolicy
範例 :Hook 組態結構描述中目標名稱萬用字元的範例
下列範例組態會叫用勾點,以用於所有 Amazon S3 資源類型的CREATE操作,以及用於所有具名資料表資源類型的UPDATE操作,例如 AWS::DynamobDB::Table或 AWS::Glue::Table。
{ "CloudFormationConfiguration": { "HookConfiguration": { "TargetStacks": "ALL", "FailureMode": "FAIL", "Properties": {}, "TargetFilters":{ "Targets": [ { "TargetName": "AWS::S3::*", "Action": "CREATE", "InvocationPoint": "PRE_PROVISION" }, { "TargetName": "AWS::*::Table", "Action": "UPDATE", "InvocationPoint": "PRE_PROVISION" } ] } } } }
下列範例組態會叫用所有 Amazon S3 資源類型的 和 CREATEUPDATE操作的勾點,以及所有具名資料表資源類型的 CREATE和 UPDATE操作,例如 AWS::DynamobDB::Table或 AWS::Glue::Table。
{ "CloudFormationConfiguration": { "HookConfiguration": { "TargetStacks": "ALL", "FailureMode": "FAIL", "Properties": {}, "TargetFilters":{ "TargetNames": [ "AWS::S3::*", "AWS::*::Table" ], "Actions": [ "CREATE", "UPDATE" ], "InvocationPoints": [ "PRE_PROVISION" ] } } } }
範例 :Include特定堆疊
下列範例會指定Include清單。只有在堆疊名稱以 開頭時,才會叫用勾點stack-test-。
{ "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus": "ENABLED", "TargetOperations": [ "STACK", "RESOURCE" ], "FailureMode": "WARN", "Properties": {}, "StackFilters": { "FilteringCriteria": "ALL", "StackNames": { "Include": [ "stack-test-*" ] } } } } }
範例 :Exclude特定堆疊
下列範例會指定Exclude清單。任何以 開頭的堆疊都會叫用勾點stack-test-。
{ "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus": "ENABLED", "TargetOperations": [ "STACK", "RESOURCE" ], "FailureMode": "WARN", "Properties": {}, "StackFilters": { "FilteringCriteria": "ALL", "StackNames": { "Exclude": [ "stack-test-*" ] } } } } }
範例 :Exclude針對特定堆疊結合 Include和
如果指定 Include和 Exclude 清單,則只會在清單中不相符Include的堆疊上叫用勾點Exclude。在下列範例中,除了名為 stack-test-1、 和 的堆疊stack-test-之外stack-test-2,所有以 開頭的堆疊都會叫用勾點stack-test-3。
{ "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus": "ENABLED", "TargetOperations": [ "STACK", "RESOURCE" ], "FailureMode": "WARN", "Properties": {}, "StackFilters": { "FilteringCriteria": "ALL", "StackNames": { "Include": [ "stack-test-*" ], "Exclude": [ "stack-test-1", "stack-test-2", "stack-test-3" ] } } } } }
範例 :Include特定角色
下列範例會指定具有兩種萬用字元模式的Include清單。第一個項目將針對任何 partition和 hook-role中開頭為 的任何角色執行勾點account-id。第二個項目會針對partition屬於 的任何 中的任何角色執行 account-id 123456789012。
{ "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus": "ENABLED", "TargetOperations": [ "STACK", "RESOURCE" ], "FailureMode": "WARN", "Properties": {}, "StackFilters": { "FilteringCriteria": "ALL", "StackRoles": { "Include": [ "arn:*:iam::*:role/hook-role*", "arn:*:iam::123456789012:role/* ] } } } } }
範例 :Exclude特定角色
下列範例會指定具有兩種萬用字元模式的Exclude清單。第一個項目會在角色exempt名稱中包含任何 partition和任何 時略過勾點執行account-id。當屬於 的角色與堆疊操作account-id123456789012搭配使用時,第二個項目會略過勾點執行。
{ "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus": "ENABLED", "TargetOperations": [ "STACK", "RESOURCE" ], "FailureMode": "WARN", "Properties": {}, "StackFilters": { "FilteringCriteria": "ALL", "StackRoles": { "Exclude": [ "arn:*:iam::*:role/*exempt*", "arn:*:iam::123456789012:role/* ] } } } } }
範例 :結合特定角色 ARN 模式Exclude的 Include和
如果指定了 Include和 Exclude 清單,則只會在與Exclude清單中不相符的 中的角色搭配使用Include的堆疊上叫用勾點。在下列範例中,除了角色屬於 之外,在具有任何 partition、 account-id和 role名稱的堆疊操作上叫用勾點account-id123456789012。
{ "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus": "ENABLED", "TargetOperations": [ "STACK", "RESOURCE" ], "FailureMode": "WARN", "Properties": {}, "StackFilters": { "FilteringCriteria": "ALL", "StackRoles": { "Include": [ "arn:*:iam::*:role/*" ], "Exclude": [ "arn:*:iam::123456789012:role/*" ] } } } } }
範例 :結合堆疊名稱和角色與所有條件
下列勾點包含一個堆疊名稱萬用字元和一個堆疊角色萬用字元。由於 FilteringCriteria 指定為 ALL,所以只會針對同時具有相符StackName和相符 的堆疊叫用勾點StackRoles。
{ "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus": "ENABLED", "TargetOperations": [ "STACK", "RESOURCE" ], "FailureMode": "WARN", "Properties": {}, "StackFilters": { "FilteringCriteria": "ALL", "StackNames": { "Include": [ "stack-test-*" ] }, "StackRoles": { "Include": ["arn:*:iam::*:role/hook-role*"] } } } } }
範例 :結合 StackNames和 StackRoles與任何條件
下列勾點包含一個堆疊名稱萬用字元和一個堆疊角色萬用字元。由於 FilteringCriteria 指定為 ANY,所以針對具有相符StackNames或相符 的堆疊叫用勾點StackRoles。
{ "CloudFormationConfiguration": { "HookConfiguration": { "HookInvocationStatus": "ENABLED", "TargetOperations": [ "STACK", "RESOURCE" ], "FailureMode": "WARN", "Properties": {}, "StackFilters": { "FilteringCriteria": "ANY", "StackNames": { "Include": [ "stack-test-*" ] }, "StackRoles": { "Include": ["arn:*:iam::*:role/hook-role*"] } } } } }