

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Uso de caracteres comodín con nombres de objetivos de Hook
<a name="wildcard-hook-targets"></a>

Puede utilizar caracteres comodín como parte del nombre del objetivo. Puedes usar caracteres comodín (`*`y`?`) en los nombres de los objetivos de Hook. El asterisco (`*`) representa cualquier combinación de caracteres. El signo de interrogación (`?`) representa cualquier carácter individual. Puede utilizar varios `?` caracteres `*` y en un nombre de destino.

**Example : ejemplos de caracteres comodín del nombre de destino en los esquemas de Hook**  
El siguiente ejemplo se dirige a todos los tipos de recursos compatibles con Amazon S3.  

```
{
...
    "handlers": {
       "preCreate": {
            "targetNames": [
                "AWS::S3::*"
            ],
            "permissions": []
       }
    }
...
}
```
El siguiente ejemplo coincide con todos los tipos de recursos que tienen Bucket "» en el nombre.  

```
{
...
    "handlers": {
       "preCreate": {
            "targetNames": [
                "AWS::*::Bucket*"
            ],
            "permissions": []
       }
    }
...
}
```
Esto `AWS::*::Bucket*` podría resolverse en cualquiera de los siguientes tipos de recursos concretos:  
+ `AWS::Lightsail::Bucket`
+ `AWS::S3::Bucket`
+ `AWS::S3::BucketPolicy`
+ `AWS::S3Outpost::Bucket`
+ `AWS::S3Outpost::BucketPolicy`

**Example : Ejemplos de caracteres comodín del nombre de destino en los esquemas de configuración de Hook**  
El siguiente ejemplo de configuración invoca el Hook para `CREATE` las operaciones en todos los tipos de recursos de Amazon S3 y para `UPDATE` las operaciones en todos los tipos de recursos de tablas con nombre asignado, como `AWS::DynamobDB::Table` o`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"
                    }
                 ]               
            }
        }
   }
}
```
El siguiente ejemplo de configuración invoca el Hook `CREATE` y `UPDATE` las operaciones en todos los tipos de recursos de Amazon S3 y también `UPDATE` las operaciones en todos los tipos de recursos de tablas con nombre asignado, como `AWS::DynamobDB::Table` o`AWS::Glue::Table`. `CREATE`  

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

**Example : pilas `Include` específicas**  
En los siguientes ejemplos se especifica una `Include` lista. El Hook solo se invoca si los nombres de las pilas comienzan por`stack-test-`.  

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

**Example : `Exclude` pilas específicas**  
En los siguientes ejemplos se especifica una `Exclude` lista. El Hook se invoca en cualquier pila que no empiece por`stack-test-`.  

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

**Example : Combinando `Include` y `Exclude` para pilas específicas**  
Si `Include` se especifican `Exclude` listas, el Hook solo se invoca en las pilas que coincidan con las `Include` que no coincidan en la `Exclude` lista. En el siguiente ejemplo, el Hook se invoca en todas las pilas que comiencen por, `stack-test-` excepto en las pilas denominadas`stack-test-1`, y`stack-test-2`. `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 : funciones específicas `Include`**  
El siguiente ejemplo especifica una `Include` lista con dos patrones de caracteres comodín. La primera entrada ejecutará el Hook para cualquier rol que comience por un `partition` y`account-id`. `hook-role` La segunda entrada se ejecutará para cualquier rol en cualquiera de los roles a `partition` los que pertenezca `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 : funciones `Exclude` específicas**  
En los ejemplos siguientes se especifica una `Exclude` lista con dos patrones de caracteres comodín. La primera entrada omitirá la ejecución de Hook cuando un rol tenga `exempt` en su nombre algún `partition` nombre. `account-id` La segunda entrada omitirá la ejecución de Hook cuando `account-id` `123456789012` se utilice un rol al que pertenezca con la operación de apilamiento.  

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

**Example : Combinación `Include` y `Exclude` para patrones de ARN de roles específicos**  
Si `Include` se especifican `Exclude` listas, el Hook solo se invoca en las pilas utilizadas con roles que coinciden con los `Include` que no coinciden en la `Exclude` lista. En el siguiente ejemplo, el Hook se invoca en las operaciones de apilamiento con cualquier `partition` `role` nombre y nombre, excepto si el rol pertenece a `account-id` `123456789012` él. `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 : Combinar nombres y roles de pila con todos los criterios**  
El siguiente Hook incluye un comodín con el nombre de la pila y un comodín con el nombre de la pila. Como `FilteringCriteria` se especifica como`ALL`, el Hook solo se invoca para las pilas que coincidan y coincidan`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 : Combinando `StackNames` y `StackRoles` con cualquier criterio**  
El siguiente Hook incluye un comodín con el nombre de la pila y un comodín con el nombre de la pila. Como `FilteringCriteria` se especifica como`ANY`, el Hook se invoca para la pila que tenga coincidencias `StackNames` o coincidencias. `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*"]
        }
      }
    }
  }
}
```