

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

# CloudFormation フックターゲットフィルター
<a name="hooks-target-filtering"></a>

このトピックでは、 CloudFormation フックのターゲットフィルターの設定に関するガイダンスを提供します。ターゲットフィルターを使用して、フックが呼び出されるタイミングとリソースをより詳細に制御できます。シンプルなリソースタイプのターゲティングから、リソースタイプ、アクション、呼び出しポイントのより複雑な組み合わせまで、フィルターを設定できます。

フック設定で 1 つ以上のスタック名をフィルターとして指定するには、 の下に`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)」を参照してください。  
*パターン*: `^[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`配列の両方を同時に含めることはできません。これらの 3 つの項目と を使用する場合は`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` オブジェクトを使用します。次のターゲットフィルター設定は`Create`、指定されたターゲットオペレーション (この場合は および `STACK`オペレーションの両方) のすべての `Update`、、`RESOURCE`および `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 テーブルの および `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"
          }
        ]               
      }
    }
  }
}
```