Regel-Funktionen - AWS CloudFormation

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 CloudFormationBenutzerhandbuch.

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

Regelfunktionen sind spezielle Funktionen, die nur im Abschnitt Rules einer CloudFormation-Vorlage funktionieren. Mit diesen Funktionen können Sie Parameterwerte mit Hilfe einer benutzerdefinierten Logik validieren. Alle Überprüfungen erfolgen, bevor CloudFormation Ressourcen erstellt oder aktualisiert.

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 Eigenschaft condition bestimmt, ob CloudFormation die Assertions anwendet. Wenn die Bedingung zu trueausgewertet wird, wertet CloudFormation die Assertions aus, 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 CloudFormation den Stack nicht erstellen oder aktualisieren. Wenn die Bedingung mit false ausgewertet wird, überprüft CloudFormation den Parameterwert nicht und fährt mit der Stack-Operation fort.

Wenn die Verwendung von Regeln in Ihren Vorlagen neu für Sie ist, empfehlen wir Ihnen, zunächst das Thema CloudFormation-Vorlage Rules Syntax im AWS CloudFormation Benutzerhandbuchdurchzulesen.

Fn::And

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

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

Parameter

Bedingung

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

Beispiel

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

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

Deklaration

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

Parameter

list_of_strings

Eine Liste mit Zeichenfolgen, z. B. "A", "B", "C".

Zeichenfolge

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

Beispiel

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

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

Deklaration

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

Parameter

list_of_strings

Eine Liste mit Zeichenfolgen, z. B. "A", "B", "C".

Zeichenfolge

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

Beispiel

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

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

Deklaration

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

Parameter

strings_to_check

Eine Liste mit Zeichenfolgen, z. B. "A", "B", "C". CloudFormation prüft, ob die einzelnen Elemente des strings_to_check-Parameters im strings_to_match-Parameter enthalten sind.

strings_to_match

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

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

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

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

Parameter

value

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

Beispiel

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

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

Fn::Not

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

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

Parameter

condition

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

Beispiel

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

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

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

Parameter

condition

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

Beispiel

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

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

Deklaration

"Fn::RefAll" : "parameter_type"

Parameter

parameter_type

Ein AWS-spezifischer Parametertyp, z. B. AWS::EC2::SecurityGroup::Id oder AWS::EC2::VPC::Id. Weitere Informationen finden Sie unter Unterstützte-AWSspezifische Parametertypen im AWS CloudFormation Benutzerhandbuch.

Beispiel

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

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

Fn::ValueOf

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

Deklaration

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

Parameter

Attribut

Der Name eines Attributs, von dem ein Wert abgerufen werden soll. Weitere Informationen zu Attributen finden Sie unter Unterstützte Attribute.

parameter_logical_id

Der Name eines Parameters, von dem Attributwerte abgerufen werden sollen. Der Parameter muss im Parameters-Abschnitt der Vorlage definiert sein.

Beispiele

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 Funktion Fn::ValueOf 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

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

Deklaration

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

Parameter

Attribut

Der Name eines Attributs, von dem Sie einen Wert abrufen möchten. Weitere Informationen zu Attributen finden Sie unter Unterstützte Attribute.

parameter_type

Ein AWS-spezifischer Parametertyp, z. B. AWS::EC2::SecurityGroup::Id oder AWS::EC2::VPC::Id. Weitere Informationen finden Sie unter Unterstützte-AWSspezifische Parametertypen im AWS CloudFormation Benutzerhandbuch.

Beispiel

Im folgenden Beispiel gibt die Funktion Fn::ValueOfAll eine Liste mit Werten zurück, wobei jedes Element der Department-Tag-Wert für VPCs mit diesem Tag ist:

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

Unterstützte Funktionen

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

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

Der Parametertyp AWS::EC2::VPC::Id oder VPC-IDs.
  • DefaultNetworkAcl

  • DefaultSecurityGroup

  • Tags.tag_key

Der Parametertyp AWS::EC2::Subnet::Id oder Subnetz-IDs.
  • AvailabilityZone

  • Tags.tag_key

  • VpcId

Der Parametertyp AWS::EC2::SecurityGroup::Id oder Sicherheitsgruppen-IDs.
  • Tags.tag_key