

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 후크 대상 이름과 함께 와일드카드 사용
<a name="wildcard-hook-targets"></a>

와일드카드를 대상 이름의 일부로 사용할 수 있습니다. 후크 대상 이름 내에 와일드카드 문자(`*` 및 `?`)를 사용할 수 있습니다. 별표(`*`)는 모든 문자 조합을 나타냅니다. 물음표(`?`)는 단일 문자를 나타냅니다. 대상 이름에 `*` 및 `?` 문자를 여러 개 사용할 수 있습니다.

**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-1` `stack-test-2`및 라는 스택을 `stack-test-` 제외하고 로 시작하는 모든 스택에서 후크가 호출됩니다`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`. 두 번째 항목은에 `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`. 두 번째 항목은에 속한 역할`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 : 스택 이름과 역할을 모든 기준과 결합**  
다음 후크에는 스택 이름 와일드카드 하나와 스택 역할 와일드카드 하나가 포함됩니다. `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`과 및 결합**  
다음 후크에는 스택 이름 와일드카드 하나와 스택 역할 와일드카드 하나가 포함됩니다. `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*"]
        }
      }
    }
  }
}
```