

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Utilisation de caractères génériques avec les noms de cibles Hook
<a name="wildcard-hook-targets"></a>

Vous pouvez utiliser des caractères génériques dans le nom de la cible. Vous pouvez utiliser des caractères génériques (`*`et`?`) dans les noms de vos cibles Hook. L'astérisque (`*`) représente n'importe quelle combinaison de caractères. Le point d'interrogation (`?`) représente n'importe quel caractère. Vous pouvez utiliser plusieurs `?` caractères `*` et dans le nom d'une cible.

**Example : exemples de caractères génériques pour le nom de la cible dans les schémas Hook**  
L'exemple suivant cible tous les types de ressources pris en charge par Amazon S3.  

```
{
...
    "handlers": {
       "preCreate": {
            "targetNames": [
                "AWS::S3::*"
            ],
            "permissions": []
       }
    }
...
}
```
L'exemple suivant correspond à tous les types de ressources dont le nom contient Bucket « ».  

```
{
...
    "handlers": {
       "preCreate": {
            "targetNames": [
                "AWS::*::Bucket*"
            ],
            "permissions": []
       }
    }
...
}
```
`AWS::*::Bucket*`Cela peut concerner l'un des types de ressources concrets suivants :  
+ `AWS::Lightsail::Bucket`
+ `AWS::S3::Bucket`
+ `AWS::S3::BucketPolicy`
+ `AWS::S3Outpost::Bucket`
+ `AWS::S3Outpost::BucketPolicy`

**Example : exemples de caractères génériques pour le nom de la cible dans les schémas de configuration Hook**  
L'exemple de configuration suivant invoque le Hook pour les `CREATE` opérations sur tous les types de ressources Amazon S3 et pour les `UPDATE` opérations sur tous les types de ressources de table nommés, tels que `AWS::DynamobDB::Table` ou`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"
                    }
                 ]               
            }
        }
   }
}
```
L'exemple de configuration suivant invoque le Hook `CREATE` et les `UPDATE` opérations sur tous les types de ressources Amazon S3, ainsi que `CREATE` des `UPDATE` opérations sur tous les types de ressources de table nommés, tels que `AWS::DynamobDB::Table` ou`AWS::Glue::Table`.  

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

**Example : `Include` piles spécifiques**  
Les exemples suivants indiquent une `Include` liste. Le Hook n'est invoqué que si les noms des piles commencent par`stack-test-`.  

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

**Example : `Exclude` piles spécifiques**  
Les exemples suivants indiquent une `Exclude` liste. Le Hook est invoqué sur toute pile qui ne commence pas par`stack-test-`.  

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

**Example : Combinaison `Include` et `Exclude` pour des piles spécifiques**  
Si `Include` des `Exclude` listes sont spécifiées, le Hook n'est invoqué que sur les piles correspondant à celles `Include` qui ne correspondent pas à la `Exclude` liste. Dans l'exemple suivant, le Hook est invoqué sur toutes les piles commençant par, à `stack-test-` l'exception des piles nommées `stack-test-1``stack-test-2`, et. `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 : rôles `Include` spécifiques**  
L'exemple suivant spécifie une `Include` liste avec deux modèles de caractères génériques. La première entrée exécutera le Hook pour n'importe quel rôle commençant `hook-role` par un `partition` et`account-id`. La deuxième entrée exécutera « any » pour n'importe quel `partition` rôle appartenant à `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 : rôles `Exclude` spécifiques**  
Les exemples suivants indiquent une `Exclude` liste avec deux modèles de caractères génériques. La première entrée ignorera l'exécution du Hook lorsqu'un rôle a `exempt` dans son nom un nom quelconque`account-id`. `partition` La deuxième entrée ignorera l'exécution de Hook lorsqu'un rôle appartenant à `account-id` `123456789012` est utilisé avec l'opération de pile.  

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

**Example : combinaison `Include` et `Exclude` pour des rôles spécifiques de modèles d'ARN**  
Si `Include` des `Exclude` listes sont spécifiées, le Hook n'est invoqué que sur les piles utilisées avec des rôles correspondant à ceux `Include` qui ne correspondent pas à ceux de la `Exclude` liste. Dans l'exemple suivant, le Hook est invoqué lors d'opérations de pile avec n'importe quel `partition` `role` nom, sauf si le rôle appartient à `account-id``123456789012`. `account-id`  

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

**Example : combinaison des noms de pile et des rôles avec tous les critères**  
Le Hook suivant inclut un caractère générique de nom de pile et un caractère générique de rôle de pile. Comme le Hook `FilteringCriteria` est spécifié comme`ALL`, le Hook n'est invoqué que pour les piles qui ont à la fois la correspondance `StackName` et la correspondance`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 : Combinaison `StackNames` et `StackRoles` avec n'importe quel critère**  
Le Hook suivant inclut un caractère générique de nom de pile et un caractère générique de rôle de pile. Parce que le `FilteringCriteria` est spécifié comme`ANY`, le Hook est invoqué pour la pile qui a une correspondance `StackNames` ou une correspondance`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*"]
        }
      }
    }
  }
}
```