Tous les produits
Search
Centre de documentation

Resource Orchestration Service:Fn::MergeMapToList

Dernière mise à jour :Aug 10, 2026

La fonction Fn::MergeMapToList fusionne plusieurs mappages sources en une liste de mappages, en combinant les valeurs par position.

Déclaration

  • JSON

    {
      "Fn::MergeMapToList": [
        {
          "key_1": ["key_1_item_1", "key_1_item_2", ...]
        },
        {
          "key_2": ["key_2_item_1", "key_2_item_2", ...],
        },
        ...
      ]
    }
  • YAML

    • Syntaxe du nom complet de la fonction :

      Fn::MergeMapToList:
        - key_1:
            - key_1_item_1
            - key_1_item_2
            - ...
        - key_2:
            - key_2_item_1
            - key_2_item_2
            - ...
        - ...
    • Syntaxe de la forme courte :

      !MergeMapToList [{key_1: [key_1_item_1, key_1_item_2, ..]}, {key_2: [key_2_item_1, key_2_item_2, ...]}, ...]

Paramètres

[{key_1: [key_1_item_1, key_1_item_2, ..]}, {key_2: [key_2_item_1, key_2_item_2, ...]},...] : les mappages sources. Chaque mappage source doit contenir une liste de valeurs.

La fusion suit ces règles :

  1. La clé et la première valeur de chaque mappage source sont fusionnées dans le premier mappage de la liste.

  2. La clé et la deuxième valeur sont fusionnées dans le deuxième mappage, et ainsi de suite pour les valeurs suivantes.

  3. La longueur de la liste résultante correspond au nombre maximal de valeurs parmi tous les mappages sources. Si les mappages sources ont un nombre différent de valeurs, la dernière valeur d'un mappage plus court est répétée pour remplir les positions restantes.

Valeur de retour

La liste des mappages fusionnés.

Exemples de syntaxe

  • Trois mappages sources avec le même nombre de valeurs :

    Fn::MergeMapToList:
      - key_1:
          - key_1_item_1
          - key_1_item_2
      - key_2:
          - key_2_item_1
          - key_2_item_2
      - key_3:
          - key_3_item_1
          - key_3_item_2

    Résultat :

    - key_1: key_1_item_1
      key_2: key_2_item_1
      key_3: key_3_item_1
    - key_1: key_1_item_2
      key_2: key_2_item_2
      key_3: key_3_item_2
  • Trois mappages sources avec un nombre différent de valeurs :

    Fn::MergeMapToList:
      - key_1:
          - key_1_item_1
          - key_1_item_2
      - key_2:
          - key_2_item_1
          - key_2_item_2
          - key_2_item_3
      - key_3:
          - key_3_item_1
          - key_3_item_2

    Résultat :

    - key_1: key_1_item_1
      key_2: key_2_item_1
      key_3: key_3_item_1
    - key_1: key_1_item_2
      key_2: key_2_item_2
      key_3: key_3_item_2
    - key_1: key_1_item_2
      key_2: key_2_item_3
      key_3: key_3_item_2

Exemple d'utilisation

Le modèle suivant ajoute toutes les instances créées par WebServer au groupe de serveurs d'une instance Server Load Balancer (SLB) :

ROSTemplateFormatVersion: '2015-09-01'
Resources:
  WebServer:
    Type: ALIYUN::ECS::InstanceGroupClone
    Properties:
      SourceInstanceId: i-xxxxx
      Password: Hello****
      MinAmount: 1
      MaxAmount: 1
  CreateVServerGroup:
    Type: ALIYUN::SLB::VServerGroup
    Properties:
      LoadBalancerId: lb-****
      VServerGroupName: VServerGroup-****
      BackendServers:
        !MergeMapToList
          - Port:
              - 6666
              - 9090
              - 8080
          - ServerId: !GetAtt WebServer.InstanceIds
          - Weight:
              - 20
              - 100

Fonctions prises en charge