Todos os produtos
Search
Central de documentação

Resource Orchestration Service:Fn::MergeMapToList

Última atualização: Jun 27, 2026

A função Fn::MergeMapToList combina vários mapeamentos source em uma lista de mapeamentos, unindo os valores por posição.

Declaração

  • JSON

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

    • Sintaxe do nome completo da função:

      Fn::MergeMapToList:
        - key_1:
            - key_1_item_1
            - key_1_item_2
            - ...
        - key_2:
            - key_2_item_1
            - key_2_item_2
            - ...
        - ...
    • Sintaxe da forma abreviada:

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

Parâmetros

[{key_1: [key_1_item_1, key_1_item_2, ..]}, {key_2: [key_2_item_1, key_2_item_2, ...]},...]: mapeamentos source. Cada mapeamento source deve conter uma lista de valores.

A mesclagem obedece às seguintes regras:

  1. A chave e o primeiro valor de cada mapeamento source compõem o primeiro mapeamento da lista resultante.

  2. A chave e o segundo valor formam o segundo mapeamento, e assim sucessivamente para os demais valores.

  3. O tamanho da lista final corresponde à maior quantidade de valores entre todos os mapeamentos source. Se os mapeamentos tiverem quantidades diferentes de valores, o último valor do mapeamento mais curto se repete para preencher as posições restantes.

Valor de retorno

Lista de mapeamentos mesclados.

Exemplos de sintaxe

  • Três mapeamentos source com a mesma quantidade de valores:

    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

    Resultado:

    - 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
  • Três mapeamentos source com quantidades diferentes de valores:

    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

    Resultado:

    - 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

Exemplo de uso

O modelo a seguir adiciona todas as instâncias criadas pelo WebServer ao grupo de servidores de uma instância do 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

Funções compatíveis