

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# CloudFormation Hooks Filter auf Stapelebene
<a name="hooks-stack-level-filtering"></a>

Sie können Ihren CloudFormation Hooks Filter auf Stack-Ebene hinzufügen, um bestimmte Stacks auf der Grundlage von Stacknamen und Rollen als Ziel festzulegen. Dies ist nützlich in Fällen, in denen Sie mehrere Stacks mit denselben Ressourcentypen haben, der Hook jedoch für bestimmte Stacks vorgesehen ist.

Dieser Abschnitt erklärt, wie diese Filter funktionieren, und enthält Beispiele, denen Sie folgen können.

Die Grundstruktur einer Hook-Konfiguration ohne Filterung auf Stack-Ebene sieht wie folgt aus:

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

Weitere Informationen zur `HookConfiguration` Syntax finden Sie unter[Referenz der Syntax des Hook-Konfigurationsschemas](hook-configuration-schema.md).

Um Filter auf Stapelebene zu verwenden, fügen Sie einen `StackFilters` Schlüssel unter hinzu`HookConfiguration`. 

Der `StackFilters` Schlüssel hat ein erforderliches Mitglied und zwei optionale Mitglieder.
+ `FilteringCriteria` (Erforderlich)
+ `StackNames` (optional)
+ `StackRoles` (optional)

Die `StackRoles` Eigenschaften `StackNames` oder sind optional. Sie müssen jedoch mindestens eine der Eigenschaften angeben.

Wenn Sie einen Hook erstellen, der auf [Cloud Control-API-Operationen](https://docs.aws.amazon.com/cloudcontrolapi/latest/userguide/what-is-cloudcontrolapi.html) abzielt, werden alle Filter auf Stack-Ebene ignoriert.

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

`FilteringCriteria`ist ein erforderlicher Parameter, der das Filterverhalten angibt. Er kann entweder auf `ALL` oder gesetzt werden`ANY`.
+ `ALL`ruft den Hook auf, wenn alle Filter übereinstimmen.
+ `ANY`ruft den Hook auf, wenn ein Filter zutrifft.

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

Verwenden Sie die folgende JSON-Struktur, um einen oder mehrere Stacknamen als Filter in Ihrer Hooks-Konfiguration anzugeben:

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

Sie müssen eine der folgenden Eigenschaften angeben:
+ `Include`: Liste der hinzuzufügenden Stack-Namen. Nur die in dieser Liste angegebenen Stacks rufen den Hook auf.
  + Typ: Zeichenfolgen-Array
  + Max. Anzahl Artikel: 50
  + Mindestanzahl Artikel: 1
+ `Exclude`: Liste der auszuschließenden Stack-Namen. Alle Stacks außer den hier aufgeführten rufen den Hook auf.
  + Typ: Zeichenfolgen-Array
  + Max. Anzahl Artikel: 50
  + Mindestanzahl Artikel: 1

Jeder Stackname in den `Exclude` Arrays `Include` und muss die folgenden Muster- und Längenanforderungen erfüllen:
+ Pattern: `^[a-zA-Z][-a-zA-Z0-9]*$`
+ Max. Länge: 128 

`StackNames`unterstützt konkrete Stapelnamen und vollständigen Platzhalterabgleich. Beispiele für die Verwendung von Platzhaltern finden Sie unter. [Verwendung von Platzhaltern mit Hook-Zielnamen](wildcard-hook-targets.md)

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

Verwenden Sie die folgende JSON-Struktur, um eine oder mehrere [IAM-Rollen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-iam-servicerole.html) als Filter in Ihrer Hook-Konfiguration anzugeben:

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

Sie müssen eine der folgenden Eigenschaften angeben:
+ `Include`: Liste der IAM-Rollen für ARNs die Zielstapel, die diesen Rollen zugeordnet sind. Nur Stack-Operationen, die von diesen Rollen initiiert wurden, rufen den Hook auf.
  + Typ: Zeichenfolgen-Array
  + Max. Anzahl Artikel: 50
  + Mindestanzahl Artikel: 1
+ `Exclude`: Liste der IAM-Rollen ARNs für Stacks, die Sie ausschließen möchten. Der Hook wird für alle Stacks aufgerufen, mit Ausnahme der Stacks, die von den angegebenen Rollen initiiert wurden.
  + Typ: Zeichenfolgen-Array
  + Max. Anzahl Artikel: 50
  + Mindestanzahl Artikel: 1

Jede Stack-Rolle in den `Exclude` Arrays `Include` und muss die folgenden Muster- und Längenanforderungen erfüllen:
+ Pattern: `arn:.+:iam::[0-9]{12}:role/.+`
+ Max. Länge: 256

`StackRoles`erlaubt Platzhalterzeichen in den folgenden [ARN-Syntaxabschnitten](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html#arns-syntax):
+ `partition`
+ `account-id`
+ `resource-id`

Beispiele für die Verwendung von Platzhaltern in den Abschnitten zur ARN-Syntax finden Sie unter[Verwendung von Platzhaltern mit Hook-Zielnamen](wildcard-hook-targets.md).

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

Jeder Filter (`StackNames`und`StackRoles`) hat eine `Include` Liste und eine `Exclude` Liste. `StackNames`Als Beispiel: Der Hook wird nur für die Stacks aufgerufen, die in `Include` der Liste angegeben sind. Wenn Stacknamen nur in der `Exclude` Liste angegeben sind, wird der Hook nur für Stacks aufgerufen, die *nicht* in der Liste enthalten sind. `Exclude` Wenn `Include` sowohl als auch angegeben `Exclude` sind, zielt der Hook auf das ab, was in der `Include` Liste steht, und nicht auf das, was in der `Exclude` Liste steht.

Nehmen wir zum Beispiel an, Sie haben vier Stapel: A, B, C und D.
+ `"Include": ["A","B"]`Der Hook wird auf A und B aufgerufen.
+ `"Exclude": ["B"]`Der Hook wird auf A, C und D aufgerufen.
+ `"Include": ["A","B","C"], "Exclude": ["A","D"]`Der Hook wird auf B und C aufgerufen.
+ `"Include": ["A","B","C"], "Exclude": ["A”,"B","C"]`Der Hook wird auf keinem Stack aufgerufen.

## Beispiele für Filter auf Stapelebene
<a name="stack-level-filtering-examples"></a>

Dieser Abschnitt enthält Beispiele, denen Sie folgen können, um Filter auf Stack-Ebene für CloudFormation Hooks zu erstellen.

### Beispiel 1: Fügen Sie bestimmte Stacks hinzu
<a name="stack-level-filtering-example-1"></a>

Das folgende Beispiel spezifiziert eine `Include` Liste. Der Hook wird nur für Stacks mit dem Namen `stack-test-1` und `stack-test-2` aufgerufen. `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"
          ]
        }
      }
    }
  }
}
```

### Beispiel 2: Schließen Sie bestimmte Stacks aus
<a name="stack-level-filtering-example-2"></a>

Wenn die Stack-Namen stattdessen zur `Exclude` Liste hinzugefügt werden, wird der Hook für jeden Stack aufgerufen, der *nicht* benannt ist`stack-test-1`, `stack-test-2` oder. `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"
          ]
        }
      }
    }
  }
}
```

### Beispiel 3: Kombination von Include und Exclude
<a name="stack-level-filtering-example-3"></a>

Wenn `Include` keine `Exclude` Listen angegeben sind, wird der Hook nur für die Stapel in der Liste aufgerufen`Include`, die nicht in der `Exclude` Liste enthalten sind. Im folgenden Beispiel wird der Hook nur bei aufgerufen. `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"
          ]
        }
      }
    }
  }
}
```

### Beispiel 4: Kombinieren von Stacknamen und Rollen mit Kriterien `ALL`
<a name="stack-level-filtering-example-4"></a>

Der folgende Hook enthält drei Stack-Namen und eine Stack-Rolle. *Da der als angegeben `FilteringCriteria` ist`ALL`, wird der Hook nur für Stacks aufgerufen, die *sowohl* einen passenden Stacknamen als auch die passende Stack-Rolle haben.*

```
{
  "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"]
        }
      }
    }
  }
}
```

### Beispiel 5: Kombinieren von Stacknamen und Rollen mit Kriterien `ANY`
<a name="stack-level-filtering-example-5"></a>

Der folgende Hook enthält drei Stack-Namen und eine Stack-Rolle. Da der als angegeben `FilteringCriteria` ist`ANY`, wird der Hook für Stapel aufgerufen, die *entweder* einen passenden Stacknamen *oder* die passende Stack-Rolle haben.

```
{
  "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"]
        }
      }
    }
  }
}
```