Fn::Select - 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::Select

Die intrinsische Funktion Fn::Select gibt ein einzelnes Objekt aus einer Objektliste durch Angabe des Index zurück.

Wichtig

Fn::Select überprüft nicht auf Null-Werte oder ob sich der Index außerhalb des Arrays befindet. Beide Bedingungen führen zu einem Stack-Fehler. Sie sollten daher sicherstellen, dass der von Ihnen gewählte Index gültig ist und dass die Liste keine Null-Werte enthält.

Deklaration

JSON

{ "Fn::Select" : [ index, listOfObjects ] }

YAML

Syntax für den vollständigen Funktionsnamen:

Fn::Select: [ index, listOfObjects ]

Syntax für die Kurzform:

!Select [ index, listOfObjects ]

Parameter

index

Der Index des Objekts zum Abrufen des Objekts. Dies muss ein Wert zwischen Null und N-1 sein, wobei N für die Anzahl der Elemente im Array steht.

listOfObjects

Die Auswahlliste für die Objekte. Diese Liste darf nicht Null sein und darf keine Null-Einträge besitzen.

Rückgabewert

Das ausgewählte Objekt.

Beispiele

Einfaches Beispiel

Im folgenden Beispiel wird Folgendes zurückgegeben: "grapes"

JSON

{ "Fn::Select" : [ "1", [ "apples", "grapes", "oranges", "mangoes" ] ] }

YAML

!Select [ "1", [ "apples", "grapes", "oranges", "mangoes" ] ]

 

Parametertyp für Komma-getrennte Listen

Mit Fn::Select können Sie ein Objekt aus einem CommaDelimitedList-Parameter auswählen. Sie können einen CommaDelimitedList-Parameter verwenden, um die Werte zugehöriger Parameter zu kombinieren, wodurch die Gesamtanzahl der Parameter in Ihrer Vorlage reduziert wird. Der folgende Parameter gibt beispielsweise eine durch Kommas getrennte Liste mit drei Blöcken an: CIDR

JSON

"Parameters" : { "DbSubnetIpBlocks": { "Description": "Comma-delimited list of three CIDR blocks", "Type": "CommaDelimitedList", "Default": "10.0.48.0/24, 10.0.112.0/24, 10.0.176.0/24" } }

YAML

Parameters: DbSubnetIpBlocks: Description: "Comma-delimited list of three CIDR blocks" Type: CommaDelimitedList Default: "10.0.48.0/24, 10.0.112.0/24, 10.0.176.0/24"

Um einen der drei CIDR Blöcke anzugeben, verwenden Sie ihn Fn::Select im Abschnitt Ressourcen derselben Vorlage, wie im folgenden Beispielausschnitt gezeigt:

JSON

"Subnet0": { "Type": "AWS::EC2::Subnet", "Properties": { "VpcId": { "Ref": "VPC" }, "CidrBlock": { "Fn::Select" : [ "0", {"Ref": "DbSubnetIpBlocks"} ] } } }

YAML

Subnet0: Type: "AWS::EC2::Subnet" Properties: VpcId: !Ref VPC CidrBlock: !Select [ 0, !Ref DbSubnetIpBlocks ]

 

Verschachtelte Funktionen in Kurzform YAML

Die folgenden Beispiele zeigen gültige Muster für die Nutzung von verschachtelten intrinsischen Funktionen mit der Kurzschreibweise von !Select. Sie können Funktionen in Kurzschreibweise nicht nacheinander verschachteln, daher ist ein Muster wie !GetAZs !Ref ungültig.

YAML

AvailabilityZone: !Select - 0 - !GetAZs Ref: 'AWS::Region'

YAML

AvailabilityZone: !Select - 0 - Fn::GetAZs: !Ref 'AWS::Region'

Unterstützte Funktionen

Für den Indexwert Fn::Select können Sie die Funktionen Ref und Fn::FindInMap verwenden.

Für die Objektliste Fn::Select können Sie die folgenden Funktionen verwenden:

  • Fn::FindInMap

  • Fn::GetAtt

  • Fn::GetAZs

  • Fn::If

  • Fn::Split

  • Ref