Fn::FindInMap - AWS CloudFormation

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Fn::FindInMap

La funzione intrinseca Fn::FindInMap restituisce i valori corrispondenti alle chiavi in una mappatura a due livelli dichiarata nella sezione Mappings.

Per ulteriori informazioni sui miglioramenti alla funzione Fn::FindInMap intrinseca quando si utilizza la trasformazione AWS::LanguageExtensions, consulta Fn::FindInMap enhancements.

Dichiarazione

JSON

{ "Fn::FindInMap" : [ "MapName", "TopLevelKey", "SecondLevelKey"] }

YAML

Sintassi per il nome completo della funzione:

Fn::FindInMap: [ MapName, TopLevelKey, SecondLevelKey ]

Sintassi per la forma breve:

!FindInMap [ MapName, TopLevelKey, SecondLevelKey ]
Nota

Non è possibile nidificare due istanze di due funzioni in forma breve.

Parametri

MapName

Il nome logico di una mappatura dichiarata nella sezione Mappature che contiene le chiavi e i valori.

TopLevelKey

Il nome della chiave di livello superiore. Il valore è un elenco di coppie chiave-valore.

SecondLevelKey

Il nome della chiave di secondo livello, che è impostato su una delle chiavi dall'elenco assegnato a TopLevelKey.

Valore restituito:

Il valore assegnato a SecondLevelKey.

Esempio

L'esempio seguente mostra come utilizzare Fn::FindInMap un modello con una Mappings sezione che contiene una singola mappaRegionMap, che associa le AMI alle regioni. AWS

  • La mappa ha 5 chiavi di primo livello che corrispondono a varie regioni. AWS

  • A ogni chiave di livello superiore viene assegnato a un elenco con due chiavi di secondo livello, "HVM64" e "HVMG2", che corrisponde all'architettura AMI.

  • A ognuna delle chiavi di secondo livello viene assegnato un nome di AMI appropriato.

Il modello di esempio contiene una risorsa AWS::EC2::Instance la cui proprietà ImageId è impostata dalla funzione FindInMap.

MapName è impostato sulla mappa di interesse, "RegionMap" in questo esempio. TopLevelKey è impostato sulla Regione in cui viene creato lo stack, che viene determinata utilizzando lo pseudoparametro "AWS::Region". SecondLevelKey è impostato sull'architettura desiderata, "HVM64" per questo esempio.

FindInMap restituisce l'AMI assegnato FindInMap. Per un'istanza HVM64 in us-east-1, FindInMap restituirebbe "ami-0ff8a91507f77f867".

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

Funzioni supportate

È possibile utilizzare le funzioni seguenti in una funzione Fn::FindInMap.

  • Fn::FindInMap

  • Ref