

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Menggunakan wildcard dengan nama target Hook
<a name="wildcard-hook-targets"></a>

Anda dapat menggunakan wildcard sebagai bagian dari nama target. Anda dapat menggunakan karakter wildcard (`*`dan`?`) dalam nama target Hook Anda. Tanda bintang (`*`) mewakili kombinasi karakter apa pun. Tanda tanya (`?`) mewakili setiap karakter tunggal. Anda dapat menggunakan beberapa `*` dan `?` karakter dalam nama target.

**Example : Contoh wildcard nama target dalam skema Hook**  
Contoh berikut menargetkan semua jenis sumber daya yang didukung oleh Amazon S3.  

```
{
...
    "handlers": {
       "preCreate": {
            "targetNames": [
                "AWS::S3::*"
            ],
            "permissions": []
       }
    }
...
}
```
Contoh berikut cocok dengan semua jenis sumber daya yang memiliki Bucket "" dalam nama.  

```
{
...
    "handlers": {
       "preCreate": {
            "targetNames": [
                "AWS::*::Bucket*"
            ],
            "permissions": []
       }
    }
...
}
```
`AWS::*::Bucket*`Mungkin menyelesaikan salah satu jenis sumber daya konkret berikut:  
+ `AWS::Lightsail::Bucket`
+ `AWS::S3::Bucket`
+ `AWS::S3::BucketPolicy`
+ `AWS::S3Outpost::Bucket`
+ `AWS::S3Outpost::BucketPolicy`

**Example : Contoh wildcard nama target dalam skema konfigurasi Hook**  
Contoh konfigurasi berikut memanggil Hook untuk `CREATE` operasi pada semua jenis sumber daya Amazon S3, dan `UPDATE` untuk operasi pada semua jenis sumber daya tabel bernama, seperti `AWS::DynamobDB::Table` atau. `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"
                    }
                 ]               
            }
        }
   }
}
```
Contoh konfigurasi berikut memanggil Hook for `CREATE` dan `UPDATE` operasi pada semua jenis sumber daya Amazon S3, dan juga `CREATE` untuk `UPDATE` dan operasi pada semua jenis sumber daya tabel bernama, seperti `AWS::DynamobDB::Table` atau. `AWS::Glue::Table`  

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

**Example : tumpukan `Include` khusus**  
Contoh berikut menentukan `Include` daftar. Hook hanya dipanggil jika nama tumpukan dimulai dengan`stack-test-`.  

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

**Example : tumpukan `Exclude` khusus**  
Contoh berikut menentukan `Exclude` daftar. Hook dipanggil pada tumpukan apa pun yang tidak dimulai`stack-test-`.  

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

**Example : Menggabungkan `Include` dan `Exclude` untuk tumpukan tertentu**  
Jika `Include` dan `Exclude` daftar ditentukan, Hook hanya dipanggil pada tumpukan yang cocok dengan `Include` yang tidak cocok dalam daftar. `Exclude` Dalam contoh berikut, Hook dipanggil pada semua tumpukan yang dimulai dengan `stack-test-` kecuali untuk tumpukan bernama`stack-test-1`,, `stack-test-2` dan. `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 : peran `Include` khusus**  
Contoh berikut menentukan `Include` daftar dengan dua pola wildcard. Entri pertama akan menjalankan Hook untuk peran apa pun yang dimulai dengan `hook-role` dalam setiap `partition` dan`account-id`. Entri kedua akan menjalankan apa pun untuk peran apa pun dalam apa pun `partition` yang dimiliki `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 : peran `Exclude` khusus**  
Contoh berikut menentukan `Exclude` daftar dengan dua pola wildcard. Entri pertama akan melewati eksekusi Hook ketika peran memiliki namanya `exempt` di setiap `partition` dan apa pun`account-id`. Entri kedua akan melewati eksekusi Hook ketika peran milik `account-id` `123456789012` digunakan dengan operasi tumpukan.  

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

**Example : Menggabungkan `Include` dan `Exclude` untuk pola ARN peran tertentu**  
Jika `Include` dan `Exclude` daftar ditentukan, Hook hanya dipanggil pada tumpukan yang digunakan dengan peran yang cocok dengan peran `Include` yang tidak cocok dalam daftar. `Exclude` Dalam contoh berikut, Hook dipanggil pada operasi tumpukan dengan apapun`partition`,`account-id`, dan `role` nama, kecuali jika peran itu milik `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 : Menggabungkan nama tumpukan dan peran dengan semua kriteria**  
Hook berikut mencakup satu wildcard nama stack dan satu wildcard peran stack. Karena `FilteringCriteria` ditentukan sebagai`ALL`, Hook hanya dipanggil untuk tumpukan yang memiliki keduanya, pencocokan `StackName` dan pencocokan. `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 : Menggabungkan `StackNames` dan `StackRoles` dengan kriteria apa pun**  
Hook berikut mencakup satu wildcard nama stack dan satu wildcard peran stack. Karena `FilteringCriteria` ditentukan sebagai`ANY`, Hook dipanggil untuk tumpukan yang memiliki pencocokan `StackNames` atau pencocokan`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*"]
        }
      }
    }
  }
}
```