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::FindInMap
Die intrinsische Fn::FindInMap
-Funktion gibt die Werte von Schlüsseln in einer Zwei-Ebenen-Map zurück, die im Abschnitt Mappings
deklariert ist.
Weitere Informationen zu Verbesserungen der intrinsischen Fn::FindInMap
-Funktion bei Verwendung der AWS::LanguageExtensions
-Transformation finden Sie unter Fn::FindInMap enhancements.
Deklaration
JSON
{ "Fn::FindInMap" : [ "
MapName
", "TopLevelKey
", "SecondLevelKey
"] }
YAML
Syntax für den vollständigen Funktionsnamen:
Fn::FindInMap: [
MapName
,TopLevelKey
,SecondLevelKey
]
Syntax für die Kurzform:
!FindInMap [
MapName
,TopLevelKey
,SecondLevelKey
]
Anmerkung
Zwei Instances von zwei Funktionen dürfen nicht im Kurzformat geschachtelt werden.
Parameter
- MapName
-
Gibt den logischen Namen einer im Abschnitt "Mappings" deklarierten Zuweisung an, die die Schlüssel und Werte enthält.
- TopLevelKey
-
Gibt den Namen des Schlüssels der obersten Ebene an. Sein Wert ist eine Auflistung von Schlüssel-Wert-Paaren.
- SecondLevelKey
-
Gibt den Namen des Schlüssels der zweiten Ebene an. Dabei handelt es sich um einen der Schlüssel aus der dem Parameter
TopLevelKey
zugewiesenen Liste.
Rückgabewert
Zurückgegeben wird der Wert, der dem SecondLevelKey
-Parameter zugewiesen ist.
Beispiel
Das folgende Beispiel zeigt, wie es Fn::FindInMap
für eine Vorlage mit einem Mappings
Abschnitt verwendet wird, der eine einzelne Map enthältRegionMap
, die AMIs mit AWS Regionen verknüpft.
-
Die Karte hat fünf Schlüssel auf oberster Ebene, die verschiedenen AWS Regionen entsprechen.
-
Jedem Schlüssel der obersten Ebene ist eine Liste mit 2 Schlüsseln der zweiten Ebene zugewiesen (
"HVM64"
und"HVMG2"
), die der AMI-Architektur entsprechen. -
Jedem Schlüssel der zweiten Ebene ist ein entsprechender AMI-Name zugewiesen.
Die Beispielvorlage enthält eine Ressource des Typs AWS::EC2::Instance
, deren Eigenschaft ImageId
durch die Funktion FindInMap
festgelegt wird.
MapName
ist auf die Karte eingestellt, in diesem Beispiel "RegionMap"
. TopLevelKey
wird auf den Bereich gesetzt, in dem der Stack erstellt wird, der durch den Pseudoparameter "AWS::Region"
bestimmt wird. SecondLevelKey
ist auf die gewünschte Architektur eingestellt, in diesem Beispiel "HVM64"
.
FindInMap
gibt den AMI zurück, der FindInMap
zugewiesen ist. Für eine HVM64-Instance in us-east-1 würde FindInMap
den Wert "ami-0ff8a91507f77f867"
zurückgeben.
JSON
{ ... "Mappings" : { "RegionMap" : { "us-east-1" : { "HVM64" : "ami-0ff8a91507f77f867", "HVMG2" : "ami-0a584ac55a7631c0c" }, "us-west-1" : { "HVM64" : "ami-0bdb828fd58c52235", "HVMG2" : "ami-066ee5fd4a9ef77f1" }, "eu-west-1" : { "HVM64" : "ami-047bb4163c506cd98", "HVMG2" : "ami-0a7c483d527806435" }, "ap-southeast-1" : { "HVM64" : "ami-08569b978cc4dfa10", "HVMG2" : "ami-0be9df32ae9f92309" }, "ap-northeast-1" : { "HVM64" : "ami-06cd52961ce9f0d85", "HVMG2" : "ami-053cdd503598e4a9d" } } }, "Resources" : { "myEC2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "HVM64" ] }, "InstanceType" : "m1.small" } } } }
YAML
Mappings: RegionMap: us-east-1: HVM64: "ami-0ff8a91507f77f867" HVMG2: "ami-0a584ac55a7631c0c" us-west-1: HVM64: "ami-0bdb828fd58c52235" HVMG2: "ami-066ee5fd4a9ef77f1" eu-west-1: HVM64: "ami-047bb4163c506cd98" HVMG2: "ami-31c2f645" ap-southeast-1: HVM64: "ami-08569b978cc4dfa10" HVMG2: "ami-0be9df32ae9f92309" ap-northeast-1: HVM64: "ami-06cd52961ce9f0d85" HVMG2: "ami-053cdd503598e4a9d" Resources: myEC2Instance: Type: "AWS::EC2::Instance" Properties: ImageId: !FindInMap - RegionMap - !Ref 'AWS::Region' - HVM64 InstanceType: m1.small
Unterstützte Funktionen
Sie können die folgenden Funktionen in einer Fn::FindInMap
-Funktion verwenden:
-
Fn::FindInMap
-
Ref