

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

# CloudFormation 후크 대상 필터
<a name="hooks-target-filtering"></a>

이 주제에서는 CloudFormation 후크에 대한 대상 필터 구성에 대한 지침을 제공합니다. 대상 필터를 사용하여 후크가 호출되는 시기와 리소스를 보다 세밀하게 제어할 수 있습니다. 간단한 리소스 유형 타겟팅부터 리소스 유형, 작업 및 호출 지점의 보다 복잡한 조합에 이르기까지 다양한 필터를 구성할 수 있습니다.

후크 구성에서 하나 이상의 스택 이름을 필터로 지정하려면 아래에 `TargetFilters` 키를 추가합니다`HookConfiguration`.

`TargetFilters`는 다음 속성을 지원합니다.

`Actions`  <a name="hooks-targetfilters-actions"></a>
대상 작업을 지정하는 문자열 배열입니다. 예제는 [예제 1: 기본 대상 필터](#target-filtering-example-1) 섹션을 참조하세요.  
*유효한 값*: `CREATE` \$1 `UPDATE` \$1 `DELETE`  
`RESOURCE`, `STACK`및 `CLOUD_CONTROL` 대상의 경우 모든 대상 작업이 적용됩니다. `CHANGE_SET` 대상의 경우 `CREATE` 작업만 적용됩니다. 자세한 내용은 [후크 대상](hooks-concepts.md#hook-terms-hook-target) 단원을 참조하십시오.

`InvocationPoints`  <a name="hooks-targetfilters-invocationpoints"></a>
대상에 대한 호출 지점을 지정하는 문자열 배열입니다.  
*유효한 값*: `PRE_PROVISION`

`TargetNames`  <a name="hooks-targetfilters-targetnames"></a>
대상으로 지정할 리소스 유형 이름을 지정하는 문자열 배열입니다. 예: `AWS::S3::Bucket`.  
대상 이름은 구체적인 대상 이름과 전체 와일드카드 일치를 지원합니다. 자세한 내용은 [후크 대상 이름과 함께 와일드카드 사용](wildcard-hook-targets.md) 단원을 참조하십시오.  
*Pattern*: `^[a-zA-Z0-9]{2,64}::[a-zA-Z0-9]{2,64}::[a-zA-Z0-9]{2,64}$`  
*최대*: `50`

`Targets`  <a name="hooks-targetfilters-targets"></a>
대상 필터링에 사용할 대상 목록을 지정하는 객체 배열입니다.  
대상 배열의 각 대상에는 다음과 같은 속성이 있습니다.    
`Actions`  <a name="hooks-targetfilters-targets-actions"></a>
지정된 대상에 대한 작업입니다.  
*유효한 값*: `CREATE` \$1 `UPDATE` \$1 `DELETE`  
`InvocationPoints`  <a name="hooks-targetfilters-targets-invocationpoints"></a>
지정된 대상의 호출 지점입니다.  
*유효한 값*: `PRE_PROVISION`  
`TargetNames`  <a name="hooks-targetfilters-targets-targetnames"></a>
대상으로 지정할 리소스 유형 이름입니다.

**참고**  
`Targets` 객체 배열과 `TargetNames`, `Actions`또는 `InvocationPoints` 배열을 동시에 포함할 수 없습니다. 이 세 항목과를 사용하려면 `Targets` 객체 배열에 포함시켜야 `Targets`합니다. 예제는 [예제 2: `Targets` 객체 배열 사용](#target-filtering-example-2) 섹션을 참조하세요.

## 대상 필터의 예
<a name="target-filtering-examples"></a>

이 섹션에서는 CloudFormation 후크에 대한 대상 필터를 생성하기 위해 따를 수 있는 예제를 제공합니다.

### 예제 1: 기본 대상 필터
<a name="target-filtering-example-1"></a>

특정 리소스 유형에 초점을 맞춘 기본 대상 필터를 생성하려면 `Actions` 배열과 함께 `TargetFilters` 객체를 사용합니다. 다음 대상 필터 구성은 지정된 대상 작업(이 경우 `RESOURCE` 및 `STACK` 작업 모두)에 대한 모든 `Create`, `Update`및 `Delete` 작업에서 후크를 호출합니다.

```
{
  "CloudFormationConfiguration": {
    "HookConfiguration": {
      "HookInvocationStatus": "ENABLED",
      "TargetOperations": [
        "STACK",
        "RESOURCE"
      ],
      "FailureMode": "WARN",
      "Properties": {},
      "TargetFilters": {
        "Actions": [
           "Create",
           "Update",
           "Delete"
        ]
      }
    }
  }
}
```

### 예제 2: `Targets` 객체 배열 사용
<a name="target-filtering-example-2"></a>

고급 필터의 경우 `Targets` 객체 배열을 사용하여 특정 대상, 작업 및 호출 지점 조합을 나열할 수 있습니다. 다음 대상 필터 구성은 S3 버킷 `CREATE` 및 DynamoDB 테이블에 대한 Hook before 및 `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"
          }
        ]               
      }
    }
  }
}
```