Fn::FindInMap - 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::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 Sie die Funktion Fn::FindInMap auf eine Vorlage mit einem Mappings-Abschnitt anwenden, der eine einzige Map (RegionMap) enthält, die AMIs AWS-Regionen zuordnet.

  • Die Map umfasst 5 Schlüssel der obersten 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