

Dies ist das neue *CloudFormation Template Reference Guide*. Bitte aktualisieren Sie Ihre Lesezeichen und Links. Hilfe zu den ersten CloudFormation Schritten finden Sie im [AWS CloudFormation Benutzerhandbuch](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

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.

# Regel-Funktionen
<a name="intrinsic-function-reference-rules"></a>

Regelfunktionen sind spezielle Funktionen, die nur im `Rules` Abschnitt einer CloudFormation Vorlage funktionieren. Mit diesen Funktionen können Sie Parameterwerte mit Hilfe einer benutzerdefinierten Logik validieren. Alle Validierungen finden statt, bevor Ressourcen CloudFormation erstellt oder aktualisiert werden.

Regeln sind nützlich, wenn die Standard-Parameterbeschränkungen nicht ausreichen. Wenn zum Beispiel SSL aktiviert ist, müssen sowohl ein Zertifikat als auch ein Domainnname angegeben werden. Eine Regel kann sicherstellen, dass diese Abhängigkeiten erfüllt werden.

In der Bedingung oder den Assertionen einer Regel können Sie intrinsische Funktionen wie `Fn::Equals`, `Fn::Not` und `Fn::RefAll` verwenden. Die Bedingungseigenschaft bestimmt, ob die CloudFormation Assertionen angewendet werden. Wenn die Bedingung zu ausgewertet wird`true`, werden die Assertionen CloudFormation ausgewertet, um zu überprüfen, ob ein Parameterwert gültig ist, wenn ein Stack erstellt oder aktualisiert wird. Wenn ein Parameterwert nicht gültig ist, wird der CloudFormation Stack nicht erstellt oder aktualisiert. Wenn die Bedingung als 0 ausgewertet wird`false`, CloudFormation wird der Parameterwert nicht überprüft und der Stackvorgang wird fortgesetzt.

Wenn Sie mit der Verwendung von Regeln in Ihren Vorlagen noch nicht vertraut sind, empfehlen wir Ihnen, zuerst das Thema zur [CloudFormation RulesVorlagensyntax](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/rules-section-structure.html) im *AWS CloudFormation Benutzerhandbuch* zu lesen.

**Topics**
+ [`Fn::And`](#fn-and)
+ [`Fn::Contains`](#fn-contains)
+ [`Fn::EachMemberEquals`](#fn-eachmemberequals)
+ [`Fn::EachMemberIn`](#fn-eachmemberin)
+ [`Fn::Equals`](#fn-equals)
+ [`Fn::Not`](#fn-not)
+ [`Fn::Or`](#fn-or)
+ [`Fn::RefAll`](#fn-refall)
+ [`Fn::ValueOf`](#fn-valueof)
+ [`Fn::ValueOfAll`](#fn-valueofall)
+ [Unterstützte Funktionen](#supported-rule-functions)
+ [Unterstützte Attribute](#rules-parameter-attributes)

## `Fn::And`
<a name="fn-and"></a>

Gibt `true` zurück, wenn alle angegebenen Bedingungen `true` ergeben, oder gibt `false` zurück, wenn eine der Bedingungen mit `false` ausgewertet wird. `Fn::And` dient als AND-Operator. Sie können mindestens 2 und höchstens 10 Bedingungen verwenden.

### Deklaration
<a name="fn-and-declaration"></a>

```
"Fn::And" : [{condition}, {...}]
```

### Parameters
<a name="fn-and-parameters"></a>

*Bedingung*  
Eine regelspezifische intrinsische Funktion, die mit `true` oder `false` ausgewertet wird.

### Beispiel
<a name="fn-and-example"></a>

Das folgende Beispiel ergibt `true`, wenn der Name der referenzierten Sicherheitsgruppe `sg-mysggroup` entspricht und der Parameterwert `InstanceType` entweder `t3.large` oder `t3.small` ist:

```
"Fn::And": [
  {
    "Fn::Equals": [
      "sg-mysggroup",
      {"Ref": "ASecurityGroup"}
    ]
  },
  {
    "Fn::Contains": [
      [
        "t3.large",
        "t3.small"
      ],
      {"Ref": "InstanceType"}
    ]
  }
]
```

## `Fn::Contains`
<a name="fn-contains"></a>

Gibt `true` zurück, wenn eine angegebene Zeichenfolge mindestens einem Wert in einer Liste von Zeichenfolgen entspricht.

### Deklaration
<a name="fn-contains-declaration"></a>

```
"Fn::Contains" : [[list_of_strings], string]
```

### Parameters
<a name="fn-contains-parameters"></a>

*list\$1of\$1strings*  
Eine Liste mit Zeichenfolgen, z. B. `"A", "B", "C"`

*Zeichenfolge*  
Eine Zeichenfolge, z. B. `"A"`, die Sie mit einer Liste von Zeichenfolgen vergleichen.

### Beispiel
<a name="fn-contains-example"></a>

Die folgende Funktion ergibt `true`, wenn der Parameterwert `InstanceType` in der Liste (`t3.large` oder `t3.small`) enthalten ist:

```
"Fn::Contains" : [
  ["t3.large", "t3.small"], {"Ref" : "InstanceType"}
]
```

## `Fn::EachMemberEquals`
<a name="fn-eachmemberequals"></a>

Gibt `true` zurück, wenn eine angegebene Zeichenfolge allen Werten in einer Liste entspricht.

### Deklaration
<a name="fn-eachmemberequals-declaration"></a>

```
"Fn::EachMemberEquals" : [[list_of_strings], string]
```

### Parameters
<a name="fn-eachmemberequals-parameters"></a>

*list\$1of\$1strings*  
Eine Liste mit Zeichenfolgen, z. B. `"A", "B", "C"`

*Zeichenfolge*  
Eine Zeichenfolge, z. B. `"A"`, die Sie mit einer Liste von Zeichenfolgen vergleichen.

### Beispiel
<a name="fn-eachmemberequals-example"></a>

Die folgende Funktion gibt `true` zurück, wenn das Tag `Department` für alle Parameter vom Typ `AWS::EC2::VPC::Id` einen Wert von `IT` hat:

```
"Fn::EachMemberEquals" : [
  {"Fn::ValueOfAll" : ["AWS::EC2::VPC::Id", "Tags.Department"]}, "IT"
]
```

## `Fn::EachMemberIn`
<a name="fn-eachmemberin"></a>

Gibt `true` zurück, wenn jedes Element in einer Liste von Zeichenfolgen mindestens einem Wert in einer zweiten Zeichenfolgenliste entspricht.

### Deklaration
<a name="fn-eachmemberin-declaration"></a>

```
"Fn::EachMemberIn" : [[strings_to_check], [strings_to_match]]
```

### Parameters
<a name="fn-eachmemberin-parameters"></a>

*strings\$1to\$1check*  
Eine Liste von Zeichenketten, wie `"A", "B", "C"` z. CloudFormation prüft, ob jedes Element im `strings_to_check` Parameter im `strings_to_match` Parameter enthalten ist.

*strings\$1to\$1match*  
Eine Liste mit Zeichenfolgen, z. B. `"A", "B", "C"`. Jedes Element im Parameter `strings_to_match` wird mit den Elementen des Parameters `strings_to_check` verglichen.

### Beispiel
<a name="fn-eachmemberin-example"></a>

Die folgende Funktion überprüft, ob die Benutzer ein Subnetz angeben, das sich in einer gültigen Virtual Private Cloud (VPC) befindet. Die VPC muss sich in dem Konto und in der Region befinden, in dem bzw. der die Benutzer mit dem Stack arbeiten. Die Funktion gilt für alle Parameter des Typs `AWS::EC2::Subnet::Id`.

```
"Fn::EachMemberIn" : [ 
  {"Fn::ValueOfAll" : ["AWS::EC2::Subnet::Id", "VpcId"]}, {"Fn::RefAll" : "AWS::EC2::VPC::Id"}
]
```

## `Fn::Equals`
<a name="fn-equals"></a>

Vergleicht zwei Werte, um festzustellen, ob sie gleich sind. Gibt `true` zurück, wenn die beiden Werte gleich sind, und `false`, wenn sie nicht gleich sind.

### Deklaration
<a name="fn-equals-declaration"></a>

```
"Fn::Equals" : ["value_1", "value_2"]
```

### Parameters
<a name="fn-equals-parameters"></a>

*`value`*  
Ein Wert eines beliebigen Typs, den Sie mit einem anderen Wert vergleichen.

### Beispiel
<a name="fn-equals-example"></a>

Das folgende Beispiel ergibt `true`, wenn der Wert für den Parameter `EnvironmentType` `prod` entspricht:

```
"Fn::Equals" : [{"Ref" : "EnvironmentType"}, "prod"]
```

## `Fn::Not`
<a name="fn-not"></a>

Gibt `true` für eine Bedingung zurück, die `false` ergibt, oder gibt `false` für eine Bedingung zurück, die mit `true` ausgewertet wird. `Fn::Not` dient als NOT-Operator.

### Deklaration
<a name="fn-not-declaration"></a>

```
"Fn::Not" : [{condition}]
```

### Parameters
<a name="fn-not-parameters"></a>

*`condition`*  
Eine regelspezifische intrinsische Funktion, die mit `true` oder `false` ausgewertet wird.

### Beispiel
<a name="fn-not-example"></a>

Das folgende Beispiel ergibt `true`, wenn der Wert für den Parameter `EnvironmentType` `prod` nicht entspricht:

```
"Fn::Not" : [{"Fn::Equals" : [{"Ref" : "EnvironmentType"}, "prod"]}]
```

## `Fn::Or`
<a name="fn-or"></a>

Gibt `true` zurück, wenn alle angegebenen Bedingungen `true` ergeben, oder gibt `false` zurück, wenn eine der Bedingungen mit `false` ausgewertet wird. `Fn::Or` dient als OR-Operator. Sie können mindestens 2 und höchstens 10 Bedingungen verwenden.

### Deklaration
<a name="fn-or-declaration"></a>

```
"Fn::Or" : [{condition}, {...}]
```

### Parameters
<a name="fn-or-parameters"></a>

*`condition`*  
Eine regelspezifische intrinsische Funktion, die mit `true` oder `false` ausgewertet wird.

### Beispiel
<a name="fn-or-example"></a>

Das folgende Beispiel ergibt `true`, wenn der Name der referenzierten Sicherheitsgruppe `sg-mysggroup` entspricht oder der Parameterwert `InstanceType` entweder `t3.large` oder `t3.small` ist:

```
"Fn::Or" : [
  {"Fn::Equals" : ["sg-mysggroup", {"Ref" : "ASecurityGroup"}]},
  {"Fn::Contains" : [["t3.large", "t3.small"], {"Ref" : "InstanceType"}]}
]
```

## `Fn::RefAll`
<a name="fn-refall"></a>

Gibt alle Werte für einen bestimmten Parametertyp zurück.

### Deklaration
<a name="fn-refall-declaration"></a>

```
"Fn::RefAll" : "parameter_type"
```

### Parameters
<a name="fn-refall-parameters"></a>

*parameter\$1type*  
Ein AWS-spezifischer Parametertyp, z. B. `AWS::EC2::SecurityGroup::Id` oder`AWS::EC2::VPC::Id`. Weitere Informationen finden Sie im *AWS CloudFormation Benutzerhandbuch* unter [Unterstützte AWS-spezifische Parametertypen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-supplied-parameter-types.html#aws-specific-parameter-types-supported).

### Beispiel
<a name="fn-refall-example"></a>

Die folgende Funktion gibt eine Liste aller VPC IDs für die Region zurück, AWS-Konto in der der Stack erstellt oder aktualisiert wird:

```
"Fn::RefAll" : "AWS::EC2::VPC::Id"
```

## `Fn::ValueOf`
<a name="fn-valueof"></a>

Gibt einen Attributwert oder eine Liste der Werte für einen bestimmten Parameter und ein Attribut zurück.

### Deklaration
<a name="fn-valueof-declaration"></a>

```
"Fn::ValueOf" : [ "parameter_logical_id", "attribute" ]
```

### Parameters
<a name="fn-valueof-parameters"></a>

*Attribut*  
Der Name eines Attributs, von dem ein Wert abgerufen werden soll. Weitere Informationen zu Attributen finden Sie unter [Unterstützte Attribute](#rules-parameter-attributes).

*parameter\$1logical\$1id*  
Der Name eines Parameters, von dem Attributwerte abgerufen werden sollen. Der Parameter muss im `Parameters`-Abschnitt der Vorlage definiert sein.

### Beispiele
<a name="fn-valueof-examples"></a>

Das folgende Beispiel gibt den Wert des `Department`-Tags für die VPC zurück, die vom Parameter `ElbVpc` angegeben wird:

```
"Fn::ValueOf" : ["ElbVpc", "Tags.Department"]
```

Wenn Sie mehrere Werte für einen Parameter angeben, kann die ValueOf Funktion Fn:: eine Liste zurückgeben. Beispielsweise können Sie mehrere Subnetze angeben und eine Liste mit Availability Zones erhalten, wobei jedes Element die Availability Zone eines bestimmten Subnetzes ist:

```
"Fn::ValueOf" : ["ListOfElbSubnets", "AvailabilityZone"]
```

## `Fn::ValueOfAll`
<a name="fn-valueofall"></a>

Gibt eine Liste mit allen Attributwerten für einen bestimmten Parametertyp und ein Attribut zurück.

### Deklaration
<a name="fn-valueofall-declaration"></a>

```
"Fn::ValueOfAll" : ["parameter_type", "attribute"]
```

### Parameters
<a name="fn-valueofall-parameters"></a>

*Attribut*  
Der Name eines Attributs, von dem Sie einen Wert abrufen möchten. Weitere Informationen zu Attributen finden Sie unter [Unterstützte Attribute](#rules-parameter-attributes).

*parameter\$1type*  
Ein AWS-spezifischer Parametertyp, z. B. `AWS::EC2::SecurityGroup::Id` oder`AWS::EC2::VPC::Id`. Weitere Informationen finden Sie im *AWS CloudFormation Benutzerhandbuch* unter [Unterstützte AWS-spezifische Parametertypen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cloudformation-supplied-parameter-types.html#aws-specific-parameter-types-supported).

### Beispiel
<a name="fn-valueofall-example"></a>

Im folgenden Beispiel gibt die `Fn::ValueOfAll` Funktion eine Werteliste zurück, wobei jedes Element der `Department` Tag-Wert für VPCs dieses Tag ist:

```
"Fn::ValueOfAll" : ["AWS::EC2::VPC::Id", "Tags.Department"]
```

## Unterstützte Funktionen
<a name="supported-rule-functions"></a>

Sie können innerhalb der Funktionen `Fn::ValueOf` und `Fn::ValueOfAll` keine andere Funktion verwenden. Allerdings können Sie die folgenden Funktionen in allen anderen regelspezifischen intrinsischen Funktionen verwenden:
+ `Ref`
+ Andere regelspezifische intrinsische Funktionen

## Unterstützte Attribute
<a name="rules-parameter-attributes"></a>

Die folgende Liste beschreibt die Attributwerte, die Sie für bestimmte Ressourcen und Parametertypen abrufen können:

Der `AWS::EC2::VPC::Id` Parametertyp oder VPC IDs.  
+ DefaultNetworkAcl
+ DefaultSecurityGroup
+ Tags.*tag\$1key*

Der `AWS::EC2::Subnet::Id` Parametertyp oder das IDs Subnetz,  
+ AvailabilityZone
+ Tags.*tag\$1key*
+ VpcId

Der `AWS::EC2::SecurityGroup::Id` Parametertyp oder die Sicherheitsgruppe IDs.  
+ Tags.*tag\$1key*