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