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. Beispielsweise gibt der folgende Parameter eine durch Komma getrennte Liste von drei CIDR-Blöcken an:
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"
Legen Sie einen der drei CIDR-Blöcke fest, indem Sie Fn::Select
im Abschnitt Ressourcen derselben Vorlage wie im folgenden Beispiel-Snippet verwenden:
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 mit YAML in Kurzschreibweise
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