Fn::ForEach - AWS CloudFormation

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.

Fn::ForEach

Die intrinsische Funktion Fn::ForEach verwendet eine Sammlung und ein Fragment und wendet die Elemente in der Sammlung auf die Kennung im bereitgestellten Fragment an. Fn::ForEach kann andere intrinsische Funktionen (auch Fn::ForEach selbst) enthalten und in den Abschnitten Conditions Abschnittssyntaxreferenz für CloudFormation Vorlagen, Outputs Abschnittssyntaxreferenz für CloudFormation Vorlagen und Resources Abschnittssyntaxreferenz für CloudFormation Vorlagen (einschließlich der Ressourceneigenschaften) verwendet werden. Sie kann nicht in den Abschnitten Syntaxreferenz für CloudFormation Vorlagen im Abschnitt „Formatversion“, Description Abschnittssyntaxreferenz für CloudFormation Vorlagen, Metadata Abschnittssyntaxreferenz für CloudFormation Vorlagen, Transform Abschnitt für CloudFormation Vorlagen, Parameters Abschnittssyntaxreferenz für CloudFormation Vorlagen, Mappings Abschnittssyntaxreferenz für CloudFormation Vorlagen, Rules Abschnittssyntaxreferenz für CloudFormation Vorlagen oder Hooks verwendet werden. Beispiele finden Sie unter Beispiele.

Wichtig

Sie müssen die AWS::LanguageExtensions-Transformation verwenden, um die intrinsische Funktion Fn::ForEach nutzen zu können.

Wichtig

Die Verwendung der intrinsischen Funktion Fn::ForEach hat keine Auswirkungen auf die geltenden Kontingente für die resultierende Vorlage. Kontingente beinhalten die maximale Größe einer Vorlage und die maximale Anzahl von Ressourcen in einer Vorlage. Weitere Informationen finden Sie unter CloudFormation Kontingente verstehen.

Deklaration

JSON

"Fn::ForEach::UniqueLoopName": [ "Identifier", ["Value1","Value2"], // Collection {"OutputKey": {OutputValue}} ]

YAML

'Fn::ForEach::UniqueLoopName': - Identifier - - Value1 # Collection - Value2 - 'OutputKey': OutputValue

Parameter

UniqueLoopName

Ein Name für diese Schleife. Der Name muss innerhalb der Vorlage eindeutig sein und darf nicht mit logischen ID-Werten im Resources Abschnittssyntaxreferenz für CloudFormation Vorlagen-Abschnitt der Vorlage in Konflikt stehen. Dieser Name ist nicht in der Transformationsausgabe enthalten.

Identifier

Die Kennung, die Sie in den Parametern OutputKey und OutputValue ersetzen möchten, die das replizierte Vorlagenfragment darstellen. Alle Instances von ${Identifier} oder &{Identifier} in den Parametern OutputKey und OutputValue werden durch die Werte aus dem Parameter Collection ersetzt.

Collection

Die Sammlung von Werten, über die iteriert werden soll. Dies kann ein Array in diesem Parameter sein oder ein Ref zu einem CommaDelimitedList. Bei Verwendung des & {Identifier} können nicht-alphanumerische Zeichen in der Collection übergeben werden.

OutputKey

Der Schlüssel in der transformierten Vorlage. ${Identifier} oder &{Identifier} muss im Parameter OutputKey enthalten sein. Wenn Fn::ForEach beispielsweise im Resources Abschnittssyntaxreferenz für CloudFormation Vorlagen-Abschnitt der Vorlage verwendet wird, ist dieser Schlüssel die logische ID jeder Ressource.

Die Syntax &{} ermöglicht die Verwendung von nicht-alphanumerischen Zeichen in der Collection, die im Parameter OutputKey verwendet werden soll.

OutputValue

Der Wert, der in der transformierten Vorlage für jedes Element im Collection-Parameter repliziert wird. Wenn Fn::ForEach beispielsweise im Resources Abschnittssyntaxreferenz für CloudFormation Vorlagen-Abschnitt der Vorlage verwendet wird, ist dieser Wert das Vorlagenfragment, das wiederholt wird, um die einzelnen Ressourcen zu konfigurieren.

Rückgabewert

Ein erweitertes Objekt, das das Objektfragment enthält, das für jedes Element in der Sammlung einmal wiederholt wird, wobei die Kennung im Fragment durch das Element aus der Sammlung ersetzt wird.

Unterstützte Funktionen

Sie können die folgenden Funktionen in Fn::ForEach verwenden.

Beispiele

Beispiele finden Sie unter Beispiele.