Tous les produits
Search
Centre de documentation

Resource Orchestration Service:Mappings

Dernière mise à jour :Aug 10, 2026

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.

Remarque
  • 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 fonction Fn::FindInMap recherche les valeurs à ce niveau.

    Exemple

    Le modèle suivant utilise la fonction Fn::FindInMap pour sélectionner un ID d'image en fonction d'un paramètre de région. Le mapping RegionMap stocke les ID d'image pour deux régions (hangzhou et beijing), 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: Finance
                        

    La fonction Fn::FindInMap accepte trois arguments : le nom du mapping (RegionMap), la clé de premier niveau (résolue au moment du déploiement à partir de regionParam) 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 ?