

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# フックターゲット名でのワイルドカードの使用
<a name="wildcard-hook-targets"></a>

ターゲット名の一部としてワイルドカードを使用できます。Hook ターゲット名にはワイルドカード文字 (`*` と `?`) を使用できます。アスタリスク (`*`) は、任意の文字の組み合わせを表します。疑問符 (`?`) は任意の 1 文字を表します。ターゲット名には複数の `*`および `?`文字を使用できます。

**Example : フックスキーマのターゲット名のワイルドカードの例**  
次の例は、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`

**Example : フック設定スキーマのターゲット名のワイルドカードの例**  
次の設定例では、すべての Amazon S3 リソースタイプの`CREATE`オペレーションと、 `AWS::DynamobDB::Table` や などのすべての名前付きテーブルリソースタイプの`UPDATE`オペレーションに対してフックを呼び出します`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 リソースタイプで `CREATE`および `UPDATE`オペレーションのフックを呼び出します。また、 `AWS::DynamobDB::Table` や など、すべての名前付きテーブルリソースタイプで `CREATE`および `UPDATE`オペレーションのフックを呼び出します`AWS::Glue::Table`。  

```
{
   "CloudFormationConfiguration": {
        "HookConfiguration": {
            "TargetStacks": "ALL",
            "FailureMode": "FAIL",
            "Properties": {},
            "TargetFilters":{
                "TargetNames": [
                    "AWS::S3::*",
                    "AWS::*::Table"
                ],
                "Actions": [
                    "CREATE",
                    "UPDATE"
                ],
                "InvocationPoints": [
                    "PRE_PROVISION"
                ]
            }
        }
   }
}
```

**Example : `Include`特定のスタック**  
次の例では、 `Include`リストを指定します。フックは、スタック名が で始まる場合にのみ呼び出されます`stack-test-`。  

```
{
  "CloudFormationConfiguration": {
    "HookConfiguration": {
      "HookInvocationStatus": "ENABLED",
      "TargetOperations": [
        "STACK",
        "RESOURCE"
      ],
      "FailureMode": "WARN",
      "Properties": {},
      "StackFilters": {
        "FilteringCriteria": "ALL",
        "StackNames": {
          "Include": [
            "stack-test-*"
          ]
        }
      }
    }
  }
}
```

**Example : `Exclude`特定のスタック**  
次の例では、 `Exclude`リストを指定します。フックは、 で始まらないスタックで呼び出されます`stack-test-`。  

```
{
  "CloudFormationConfiguration": {
    "HookConfiguration": {
      "HookInvocationStatus": "ENABLED",
      "TargetOperations": [
        "STACK",
        "RESOURCE"
      ],
      "FailureMode": "WARN",
      "Properties": {},
      "StackFilters": {
        "FilteringCriteria": "ALL",
        "StackNames": {
          "Exclude": [
            "stack-test-*"
          ]
        }
      }
    }
  }
}
```

**Example : 特定のスタック`Exclude`の `Include`と の組み合わせ**  
`Include` および `Exclude`リストが指定されている場合、フックは`Exclude`リスト内で`Include`一致しない で一致するスタックでのみ呼び出されます。次の例では、、、および という名前のスタック`stack-test-`を除き`stack-test-1``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"
          ]
        }
      }
    }
  }
}
```

**Example : `Include`特定のロール**  
次の例では、2 つのワイルドカードパターンを持つ `Include` リストを指定します。最初のエントリは、 `partition`および で で始まるすべてのロール`hook-role`に対してフックを実行します`account-id`。2 番目のエントリは、 `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/*
          ]
        }
      }
    }
  }
}
```

**Example : `Exclude`特定のロール**  
次の例では、2 つのワイルドカードパターンを持つ `Exclude` リストを指定します。ロールの名前`exempt`に と がある場合、最初のエントリはフック実行をスキップします`partition``account-id`。2 番目のエントリは、 に属するロール`account-id``123456789012`がスタックオペレーションで使用される場合、フック実行をスキップします。  

```
{
  "CloudFormationConfiguration": {
    "HookConfiguration": {
      "HookInvocationStatus": "ENABLED",
      "TargetOperations": [
        "STACK",
        "RESOURCE"
      ],
      "FailureMode": "WARN",
      "Properties": {},
      "StackFilters": {
        "FilteringCriteria": "ALL",
        "StackRoles": {
          "Exclude": [
            "arn:*:iam::*:role/*exempt*",
            "arn:*:iam::123456789012:role/*
          ]
        }
      }
    }
  }
}
```

**Example : 特定のロール ARN パターン`Exclude`に対して `Include`と を組み合わせる**  
`Include` および `Exclude`リストが指定されている場合、フックは、`Exclude`リスト内で一致しない `Include`のロールと一致するロールで使用されるスタックでのみ呼び出されます。次の例では、フックは、ロールが に属している場合を除き、、`partition`、`account-id`、および `role`の名前を持つスタックオペレーションで呼び出されます`account-id``123456789012`。  

```
{
  "CloudFormationConfiguration": {
    "HookConfiguration": {
      "HookInvocationStatus": "ENABLED",
      "TargetOperations": [
        "STACK",
        "RESOURCE"
      ],
      "FailureMode": "WARN",
      "Properties": {},
      "StackFilters": {
        "FilteringCriteria": "ALL",
        "StackRoles": {
          "Include": [
            "arn:*:iam::*:role/*"
          ],
          "Exclude": [
            "arn:*:iam::123456789012:role/*"
          ]
        }
      }
    }
  }
}
```

**Example : スタック名とロールをすべての条件と組み合わせる**  
次のフックには、1 つのスタック名ワイルドカードと 1 つのスタックロールワイルドカードが含まれています。`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*"]
        }
      }
    }
  }
}
```

**Example : `StackNames`と を任意の条件`StackRoles`と組み合わせる**  
次のフックには、1 つのスタック名ワイルドカードと 1 つのスタックロールワイルドカードが含まれています。`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*"]
        }
      }
    }
  }
}
```