All Products
Search
Document Center

Resource Orchestration Service:Fn::MergeMapToList

Last Updated:Jul 02, 2025

Fungsi bawaan Fn::MergeMapToList menggabungkan beberapa pemetaan menjadi daftar pemetaan baru.

Deklarasi

  • JSON

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

    • Sintaks untuk nama fungsi lengkap:

      Fn::MergeMapToList:
        - key_1:
            - key_1_item_1
            - key_1_item_2
            - ...
        - key_2:
            - key_2_item_1
            - key_2_item_2
            - ...
        - ...
    • Sintaks untuk bentuk pendek:

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

Parameter

[{key_1: [key_1_item_1, key_1_item_2, ..]}, {key_2: [key_2_item_1, key_2_item_2, ...]},...]: Pemetaan sumber. Setiap pemetaan sumber harus memiliki daftar nilai.

Fungsi ini menggabungkan pemetaan sumber ke dalam daftar pemetaan baru berdasarkan aturan berikut:

  1. Menggabungkan kunci dan nilai pertama di setiap pemetaan sumber ke dalam pemetaan pertama di daftar baru.

  2. Menggabungkan kunci dan nilai kedua di setiap pemetaan sumber ke dalam pemetaan kedua di daftar baru. Semua kunci dan nilai mengikuti aturan yang sama.

  3. Jumlah pemetaan dalam daftar baru ditentukan oleh jumlah nilai terbesar dalam pemetaan sumber di antara semua pemetaan sumber. Jika jumlah nilai dalam pemetaan sumber berbeda, sistem akan menggunakan nilai terakhir dari pemetaan sumber yang lebih pendek secara berulang untuk memastikan bahwa setiap pemetaan dalam daftar baru memiliki jumlah nilai yang sama.

Nilai kembali

Daftar pemetaan yang telah digabungkan.

Contoh sintaks

  • Pada contoh berikut, tiga pemetaan sumber digabungkan. Setiap pemetaan sumber memiliki jumlah nilai yang sama.

    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

    Hasil:

    - 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
  • Pada contoh berikut, tiga pemetaan sumber digabungkan. Pemetaan sumber memiliki jumlah nilai yang berbeda.

    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

    Hasil:

    - 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

Contoh penggunaan

Pada template sampel berikut, semua instance yang dibuat di WebServer ditambahkan ke grup server dari 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

Fungsi yang didukung