La section Mappings définit des tables de recherche statiques clé-valeur dans un modèle. Utilisez la fonction Fn::FindInMap dans les sections Resources ou Outputs pour récupérer une valeur à partir d'une table à deux niveaux déclarée ici.
Syntaxe
La section Mappings contient des paires clé-valeur. Les clés doivent être des chaînes de caractères. Les valeurs peuvent être de type String, Number, Boolean, List ou Dictionary. Lors de la déclaration de plusieurs mappings en JSON, séparez-les par des virgules (,). Chaque nom de mapping doit être unique au sein de la section.
Les mappings doivent contenir uniquement des données brutes et ne peuvent pas inclure de fonctions.
Évitez de définir des tables à un seul niveau dans la section Mappings. Le service Resource Orchestration Service (ROS) ne peut pas interroger une valeur à partir d'une table à un seul niveau.
Mappings:
ValidMap:
'1234567890':
TestValu3: value3
TestKey1:
TestValu1: value1
TestKey2:
TestValu2: value2
TestKey4:
TestValu4: 1234
Chaque élément de la section Mappings joue un rôle spécifique :
ValidMap: nom logique du mapping, unique dans le modèle.TestKey1,TestKey2,TestKey4,'1234567890': clés de premier niveau (chaînes de caractères).-
TestValu1: value1: paires clé-valeur de second niveau. La fonctionFn::FindInMaprecherche les valeurs à ce niveau.Exemple
Le modèle suivant utilise la fonction
Fn::FindInMappour sélectionner un ID d'image en fonction d'un paramètre de région. Le mappingRegionMapstocke les ID d'image pour deux régions (hangzhouetbeijing), chacune disposant des clés'32'et'64'.ROSTemplateFormatVersion: '2015-09-01' Parameters: regionParam: Description: the region where you want to create the Elastic Compute Service (ECS) instance Type: String AllowedValues: - hangzhou - beijing Mappings: RegionMap: hangzhou: '32': m-25l0rcfjo '64': m-25l0rcfj1 beijing: '32': m-25l0rcfj2 '64': m-25l0rcfj3 Resources: WebServer: Type: ALIYUN::ECS::Instance Properties: ImageId: Fn::FindInMap: - RegionMap - Ref: regionParam - '32' InstanceType: ecs.t1.small SecurityGroupId: sg-25zwc**** ZoneId: cn-beijing-b Tags: - Key: Department1 Value: HumanResource - Key: Department2 Value: FinanceLa fonction
Fn::FindInMapaccepte trois arguments : le nom du mapping (RegionMap), la clé de premier niveau (résolue au moment du déploiement à partir deregionParam) et la clé de second niveau ('32').
FAQ
Il est impossible d'interroger une valeur à partir d'une table à un seul niveau définie dans la section Mappings. Pour plus d'informations, consultez la rubrique Comment interroger une valeur à partir d'une carte dans un modèle ?