Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Fn::FindInMap
La fonction intrinsèque Fn::FindInMap
renvoie la valeur correspondant aux clés dans un mappage à deux niveaux déclaré dans la section Mappings
.
Pour plus d'informations sur les améliorations apportées à la fonction Fn::FindInMap
intrinsèque lors de l'utilisation de la transformation AWS::LanguageExtensions
, consultez Fn::FindInMap enhancements.
Déclaration
JSON
{ "Fn::FindInMap" : [ "
MapName
", "TopLevelKey
", "SecondLevelKey
"] }
YAML
Syntaxe pour le nom complet de la fonction :
Fn::FindInMap: [
MapName
,TopLevelKey
,SecondLevelKey
]
Syntaxe pour la forme courte :
!FindInMap [
MapName
,TopLevelKey
,SecondLevelKey
]
Note
Vous ne pouvez pas imbriquer deux instances de deux fonctions sous une forme courte.
Paramètres
- MapName
-
Nom logique d'un mappage déclaré dans la section Mappings, qui contient les clés et les valeurs.
- TopLevelKey
-
Nom de la clé de niveau supérieur. Sa valeur est une liste des paires clé-valeur.
- SecondLevelKey
-
Nom de la clé de deuxième niveau, qui est l'une des clés de la liste assignée à
TopLevelKey
.
Valeur renvoyée :
La valeur qui est assignée à SecondLevelKey
.
Exemple
L'exemple suivant montre comment utiliser Fn::FindInMap
un modèle avec une Mappings
section contenant une seule carteRegionMap
, qui associe des AMI à des AWS régions.
-
La carte comporte 5 clés de haut niveau qui correspondent à différentes AWS régions.
-
Chaque clé de niveau supérieur se voit attribuer une liste avec deux clés de deuxième niveau,
"HVM64"
et"HVMG2"
, qui correspondent à l'architecture de l'AMI. -
Chacune des clés de deuxième niveau se voit attribuer un nom d'AMI approprié.
Cet exemple de modèle contient une ressources AWS::EC2::Instance
dont la propriété ImageId
est définie par la fonction FindInMap
.
MapName
indique la carte d’intérêt ("RegionMap"
dans cet exemple). TopLevelKey
indique la région où la pile est créée, qui est déterminée à l’aide du pseudo-paramètre "AWS::Region"
. SecondLevelKey
est défini sur l’architecture souhaitée ("HVM64"
dans cet exemple).
FindInMap
renvoie l'AMI attribuée à FindInMap
. Pour une instance HVM64 dans us-east-1, FindInMap
renverrait "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
Fonctions prises en charge
Vous pouvez utiliser les fonctions suivantes dans une fonction Fn::FindInMap
:
-
Fn::FindInMap
-
Ref