

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# CloudFormation Filtri Hooks Stack Level
<a name="hooks-stack-level-filtering"></a>

Puoi aggiungere filtri a livello di stack ai tuoi CloudFormation Hooks per indirizzare pile specifiche in base ai nomi e ai ruoli degli stack. Ciò è utile nei casi in cui si dispone di più stack con gli stessi tipi di risorse, ma l'Hook è destinato a stack specifici.

Questa sezione spiega come funzionano questi filtri e fornisce esempi da seguire.

La struttura di base di una configurazione Hook senza filtraggio a livello di stack è la seguente:

```
{
  "CloudFormationConfiguration": {
    "HookConfiguration": {
      "HookInvocationStatus": "ENABLED",
      "TargetOperations": [
        "STACK",
        "RESOURCE"
      ],
      "FailureMode": "WARN",
      "Properties": {},
      "TargetFilters": {
        "Actions": [
          "CREATE",
          "UPDATE",
          "DELETE"
        ]
      }
    }
  }
}
```

Per ulteriori informazioni sulla `HookConfiguration` sintassi, vedere. [Riferimento alla sintassi dello schema di configurazione dell’hook](hook-configuration-schema.md)

Per utilizzare i filtri a livello di stack, aggiungi una `StackFilters` chiave sotto. `HookConfiguration` 

La `StackFilters` chiave ha un membro obbligatorio e due membri opzionali.
+ `FilteringCriteria`(obbligatorio)
+ `StackNames` (facoltativo)
+ `StackRoles` (facoltativo)

Le `StackRoles` proprietà `StackNames` or sono opzionali. Tuttavia, è necessario specificare almeno una di tali proprietà.

Se crei un Hook destinato alle operazioni dell'[API Cloud Control](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/what-is-cloudcontrolapi.html), tutti i filtri a livello di stack verranno ignorati.

## `FilteringCriteria`
<a name="stack-level-filtering-components-filteringcriteria"></a>

`FilteringCriteria`è un parametro obbligatorio che specifica il comportamento di filtraggio. Può essere impostato su o`ALL`. `ANY`
+ `ALL`richiama l'Hook se tutti i filtri corrispondono.
+ `ANY`richiama l'Hook se c'è un filtro corrispondente.

## `StackNames`
<a name="stack-level-filtering-components-stacknames"></a>

Per specificare uno o più nomi di stack come filtri nella configurazione di Hooks, utilizza la seguente struttura JSON:

```
"StackNames": {
  "Include": [
    "string"
  ],
  "Exclude": [
    "string"
  ]
}
```

È necessario specificare una delle seguenti opzioni:
+ `Include`: elenco dei nomi degli stack da includere. Solo gli stack specificati in questo elenco richiameranno l'Hook.
  + Tipo: array di stringhe
  + Numero massimo di elementi: 50
  + Numero minimo di articoli: 1
+ `Exclude`: Elenco dei nomi degli stack da escludere. Tutti gli stack tranne quelli elencati qui invocheranno l'Hook.
  + Tipo: array di stringhe
  + Numero massimo di oggetti: 50
  + Numero minimo di articoli: 1

Ogni nome di stack negli `Exclude` array `Include` and deve rispettare i seguenti requisiti di modello e lunghezza:
+ Modello: `^[a-zA-Z][-a-zA-Z0-9]*$`
+ Lunghezza massima: 128 

`StackNames`supporta nomi di stack concreti e la corrispondenza completa dei caratteri jolly. Per vedere esempi di utilizzo dei caratteri jolly, consulta. [Usare i caratteri jolly con i nomi degli obiettivi di Hook](wildcard-hook-targets.md)

## `StackRoles`
<a name="stack-level-filtering-components-StackRoles"></a>

Per specificare uno o più [ruoli IAM](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-servicerole.html) come filtri nella configurazione di Hook, utilizza la seguente struttura JSON:

```
"StackRoles": {
  "Include": [
    "string"
  ],
  "Exclude": [
    "string"
  ]
}
```

È necessario specificare una delle seguenti opzioni:
+ `Include`: Elenco dei ruoli IAM ARNs a cui indirizzare gli stack associati a questi ruoli. Solo le operazioni di stack avviate da questi ruoli richiameranno l'Hook.
  + Tipo: array di stringhe
  + Numero massimo di articoli: 50
  + Numero minimo di articoli: 1
+ `Exclude`: Elenco dei ruoli IAM ARNs per gli stack che desideri escludere. L'Hook verrà richiamato su tutti gli stack ad eccezione di quelli avviati dai ruoli specificati.
  + Tipo: array di stringhe
  + Numero massimo di articoli: 50
  + Numero minimo di articoli: 1

Ogni ruolo dello stack negli `Exclude` array `Include` and deve rispettare i seguenti requisiti di modello e lunghezza:
+ Modello: `arn:.+:iam::[0-9]{12}:role/.+`
+ Lunghezza massima: 256

`StackRoles`consenti caratteri jolly nelle seguenti sezioni della [sintassi ARN:](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html#arns-syntax)
+ `partition`
+ `account-id`
+ `resource-id`

Per vedere esempi di utilizzo dei caratteri jolly nelle sezioni sulla sintassi ARN, vedere. [Usare i caratteri jolly con i nomi degli obiettivi di Hook](wildcard-hook-targets.md)

## `Include` e `Exclude`
<a name="stack-level-filtering-components-include-and-exclude"></a>

Ogni filtro (`StackNames`and`StackRoles`) ha una `Include` lista e una lista. `Exclude` `StackNames`Ad esempio, l'Hook viene richiamato solo sugli stack specificati nell'`Include`elenco. *Se i nomi degli stack sono specificati solo nell'`Exclude`elenco, l'hook viene richiamato solo sugli stack che non sono presenti nell'elenco.* `Exclude` Se `Exclude` vengono specificati entrambi `Include` e, l'Hook prende di mira ciò che è nell'`Include`elenco e non ciò che è nell'elenco. `Exclude`

Ad esempio, supponiamo di avere quattro pile: A, B, C e D.
+ `"Include": ["A","B"]`L'Hook viene invocato su A e B.
+ `"Exclude": ["B"]`L'Hook viene invocato su A, C e D.
+ `"Include": ["A","B","C"], "Exclude": ["A","D"]`L'Hook viene invocato su B e C.
+ `"Include": ["A","B","C"], "Exclude": ["A”,"B","C"]`L'Hook non viene invocato su nessuno stack.

## Esempi di filtri a livello di stack
<a name="stack-level-filtering-examples"></a>

Questa sezione fornisce esempi che puoi seguire per creare filtri a livello di stack per Hooks. CloudFormation 

### Esempio 1: Includi pile specifiche
<a name="stack-level-filtering-example-1"></a>

L'esempio seguente specifica un `Include` elenco. L'Hook viene richiamato solo sugli stack `stack-test-1` denominati, e. `stack-test-2` `stack-test-3`

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

### Esempio 2: Escludi pile specifiche
<a name="stack-level-filtering-example-2"></a>

Se i nomi degli stack vengono invece aggiunti all'`Exclude`elenco, l'Hook viene richiamato su qualsiasi pila *senza* nome, oppure. `stack-test-1` `stack-test-2` `stack-test-3`

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

### Esempio 3: Combinazione di inclusione ed esclusione
<a name="stack-level-filtering-example-3"></a>

Se `Include` gli `Exclude` elenchi non sono specificati, l'Hook viene invocato solo sugli stack `Include` che non sono presenti nell'`Exclude`elenco. Nell'esempio seguente, l'Hook viene invocato solo su. `stack-test-3`

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

### Esempio 4: Combinazione di nomi e ruoli degli stack con criteri `ALL`
<a name="stack-level-filtering-example-4"></a>

Il seguente Hook include tre nomi di stack e un ruolo di stack. *Poiché `FilteringCriteria` è specificato come`ALL`, l'Hook viene richiamato solo per gli stack che hanno *sia* un nome di stack corrispondente che il ruolo dello stack corrispondente.*

```
{
  "CloudFormationConfiguration": {
    "HookConfiguration": {
      "HookInvocationStatus": "ENABLED",
      "TargetOperations": [
        "STACK",
        "RESOURCE"
      ],
      "FailureMode": "WARN",
      "Properties": {},
      "StackFilters": {
        "FilteringCriteria": "ALL",
        "StackNames": {
          "Include": [
            "stack-test-1",
            "stack-test-2",
            "stack-test-3"
          ]
        },
        "StackRoles": {
          "Include": ["arn:aws:iam::123456789012:role/hook-role"]
        }
      }
    }
  }
}
```

### Esempio 5: combinazione di nomi e ruoli dello stack con criteri `ANY`
<a name="stack-level-filtering-example-5"></a>

Il seguente Hook include tre nomi di stack e un ruolo di stack. *Poiché `FilteringCriteria` è specificato come`ANY`, l'Hook viene richiamato per gli stack che hanno un nome di stack corrispondente *o* il ruolo dello stack corrispondente.*

```
{
  "CloudFormationConfiguration": {
    "HookConfiguration": {
      "HookInvocationStatus": "ENABLED",
      "TargetOperations": [
        "STACK",
        "RESOURCE"
      ],
      "FailureMode": "WARN",
      "Properties": {},
      "StackFilters": {
        "FilteringCriteria": "ANY",
        "StackNames": {
          "Include": [
            "stack-test-1",
            "stack-test-2",
            "stack-test-3"
          ]
        },
        "StackRoles": {
            "Include": ["arn:aws:iam::123456789012:role/hook-role"]
        }
      }
    }
  }
}
```