Bagikan melalui


Fungsi objek untuk templat ARM

Resource Manager menyediakan beberapa fungsi untuk bekerja dengan objek di templat Azure Resource Manager (templat ARM):

Petunjuk / Saran

Bicep direkomendasikan karena menawarkan kemampuan yang sama dengan templat ARM, dan sintaksnya lebih mudah digunakan. Untuk mempelajari selengkapnya, lihat fungsi objek .

mengandung

contains(container, itemToFind)

Memeriksa apakah array berisi nilai, objek berisi kunci, atau string berisi substring. Perbandingan untai (karakter) peka terhadap huruf besar/kecil. Namun, ketika pengujian, jika objek berisi kunci, perbandingannya tidak peka huruf besar/kecil.

Di Bicep, gunakan contains fungsi .

Parameter-parameternya

Pengaturan Diperlukan Tipe Deskripsi
container Ya array, objek, atau string Nilai yang berisi nilai untuk ditemukan.
itemToFind Ya string atau int Nilai untuk ditemukan.

Mengembalikan nilai

Benar jika item ditemukan; jika tidak, Salah.

Contoh

Contoh berikut menunjukkan cara menggunakan contains dengan jenis yang berbeda:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "stringToTest": {
      "type": "string",
      "defaultValue": "OneTwoThree"
    },
    "objectToTest": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "b",
        "three": "c"
      }
    },
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "stringTrue": {
      "type": "bool",
      "value": "[contains(parameters('stringToTest'), 'e')]"
    },
    "stringFalse": {
      "type": "bool",
      "value": "[contains(parameters('stringToTest'), 'z')]"
    },
    "objectTrue": {
      "type": "bool",
      "value": "[contains(parameters('objectToTest'), 'one')]"
    },
    "objectFalse": {
      "type": "bool",
      "value": "[contains(parameters('objectToTest'), 'a')]"
    },
    "arrayTrue": {
      "type": "bool",
      "value": "[contains(parameters('arrayToTest'), 'three')]"
    },
    "arrayFalse": {
      "type": "bool",
      "value": "[contains(parameters('arrayToTest'), 'four')]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
stringTrue Bool Benar
stringFalse Bool Tidak benar
objectTrue Bool Benar
objectFalse Bool Tidak benar
arrayTrue Bool Benar
arrayFalse Bool Tidak benar

createObject

createObject(key1, value1, key2, value2, ...)

Membuat objek dari kunci dan nilai.

Fungsi createObject ini tidak didukung oleh Bicep. Buat objek dengan menggunakan {}. Lihat Objek.

Parameter-parameternya

Pengaturan Diperlukan Tipe Deskripsi
kunci1 Tidak. string Nama kunci.
nilai1 Tidak. int, boolean, string, objek, atau array Nilai untuk kunci.
lebih banyak kunci Tidak. string Nama kunci lainnya.
nilai lainnya Tidak. int, boolean, string, objek, atau array Nilai lainnya untuk kunci.

Fungsi ini hanya menerima jumlah parameter yang merata. Setiap kunci harus memiliki nilai yang cocok.

Mengembalikan nilai

Objek dengan setiap pasangan kunci dan nilai.

Contoh

Contoh berikut membuat objek dari berbagai jenis nilai:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
  ],
  "outputs": {
    "newObject": {
      "type": "object",
      "value": "[createObject('intProp', 1, 'stringProp', 'abc', 'boolProp', true(), 'arrayProp', createArray('a', 'b', 'c'), 'objectProp', createObject('key1', 'value1'))]"
    }
  }
}

Output dari contoh sebelumnya dengan nilai default adalah objek bernama newObject dengan nilai berikut:

{
  "intProp": 1,
  "stringProp": "abc",
  "boolProp": true,
  "arrayProp": ["a", "b", "c"],
  "objectProp": {"key1": "value1"}
}

kosong

empty(itemToTest)

Menentukan apakah array, objek, atau untai (karakter) kosong.

Di Bicep, gunakan empty fungsi .

Parameter-parameternya

Pengaturan Diperlukan Tipe Deskripsi
itemToTest Ya array, objek, atau string Nilai untuk memeriksa apakah nilainya kosong.

Mengembalikan nilai

Kembalikan Benar jika nilainya kosong; jika tidak, Salah.

Contoh

Contoh berikut memeriksa apakah array, objek, dan string kosong:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testArray": {
      "type": "array",
      "defaultValue": []
    },
    "testObject": {
      "type": "object",
      "defaultValue": {}
    },
    "testString": {
      "type": "string",
      "defaultValue": ""
    }
  },
  "resources": [
  ],
  "outputs": {
    "arrayEmpty": {
      "type": "bool",
      "value": "[empty(parameters('testArray'))]"
    },
    "objectEmpty": {
      "type": "bool",
      "value": "[empty(parameters('testObject'))]"
    },
    "stringEmpty": {
      "type": "bool",
      "value": "[empty(parameters('testString'))]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
arrayEmpty Bool Benar
objectEmpty Bool Benar
stringEmpty Bool Benar

persimpangan

intersection(arg1, arg2, arg3, ...)

Mengembalikan satu array atau objek dengan elemen umum dari parameter.

Di Bicep, gunakan intersection fungsi .

Parameter-parameternya

Pengaturan Diperlukan Tipe Deskripsi
arg1 Ya array atau objek Nilai pertama yang digunakan untuk menemukan elemen umum.
arg2 Ya array atau objek Nilai kedua yang digunakan untuk menemukan elemen umum.
lebih banyak argumen Tidak. array atau objek Lebih banyak nilai yang digunakan untuk menemukan elemen umum.

Mengembalikan nilai

Array atau objek dengan elemen umum.

Contoh

Contoh berikut menunjukkan cara menggunakan intersection dengan array dan objek:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstObject": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "b",
        "three": "c"
      }
    },
    "secondObject": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "z",
        "three": "c"
      }
    },
    "firstArray": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    },
    "secondArray": {
      "type": "array",
      "defaultValue": [ "two", "three" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "objectOutput": {
      "type": "object",
      "value": "[intersection(parameters('firstObject'), parameters('secondObject'))]"
    },
    "arrayOutput": {
      "type": "array",
      "value": "[intersection(parameters('firstArray'), parameters('secondArray'))]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
objectOutput Objek {"one": "a", "three": "c"}
arrayOutput Array ["two", "three"]

Barang-barang

items(object)

Mengonversi objek kamus ke array. Lihat toObject tentang mengonversi array menjadi objek.

Di Bicep, gunakan items fungsi .

Parameter-parameternya

Pengaturan Diperlukan Tipe Deskripsi
objek Ya objek Objek kamus yang akan dikonversi ke array.

Mengembalikan nilai

Array objek untuk kamus yang dikonversi. Setiap objek dalam array memiliki properti key yang berisi nilai kunci untuk kamus. Setiap objek juga memiliki properti value yang berisi properti untuk objek.

Contoh

Contoh berikut mengonversi objek kamus menjadi array, membuat objek baru dengan nilai yang dimodifikasi untuk setiap objek dalam array:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "copy": [
      {
        "name": "modifiedListOfEntities",
        "count": "[length(items(variables('entities')))]",
        "input": {
          "key": "[items(variables('entities'))[copyIndex('modifiedListOfEntities')].key]",
          "fullName": "[items(variables('entities'))[copyIndex('modifiedListOfEntities')].value.displayName]",
          "itemEnabled": "[items(variables('entities'))[copyIndex('modifiedListOfEntities')].value.enabled]"
        }
      }
    ],
    "entities": {
      "item002": {
        "enabled": false,
        "displayName": "Example item 2",
        "number": 200
      },
      "item001": {
        "enabled": true,
        "displayName": "Example item 1",
        "number": 300
      }
    }
  },
  "resources": [],
  "outputs": {
    "modifiedResult": {
      "type": "array",
      "value": "[variables('modifiedListOfEntities')]"
    }
  }
}

Contoh sebelumnya menampilkan:

"modifiedResult": {
  "type": "Array",
  "value": [
    {
      "fullName": "Example item 1",
      "itemEnabled": true,
      "key": "item001"
    },
    {
      "fullName": "Example item 2",
      "itemEnabled": false,
      "key": "item002"
    }
  ]
}

Contoh berikut menunjukkan array yang dikembalikan items fungsi:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "entities": {
      "item002": {
        "enabled": false,
        "displayName": "Example item 2",
        "number": 200
      },
      "item001": {
        "enabled": true,
        "displayName": "Example item 1",
        "number": 300
      }
    },
    "entitiesArray": "[items(variables('entities'))]"
  },
  "resources": [],
  "outputs": {
    "itemsResult": {
      "type": "array",
      "value": "[variables('entitiesArray')]"
    }
  }
}

Contoh ini menampilkan:

"itemsResult": {
  "type": "Array",
  "value": [
    {
      "key": "item001",
      "value": {
        "displayName": "Example item 1",
        "enabled": true,
        "number": 300
      }
    },
    {
      "key": "item002",
      "value": {
        "displayName": "Example item 2",
        "enabled": false,
        "number": 200
      }
    }
  ]
}

Di JSON, objek adalah kumpulan pasangan kunci/nilai nol atau lebih yang tidak diurutkan. Pengurutan dapat berbeda bergantung pada implementasinya. Misalnya, fungsi item() Bicep mengurutkan objek dalam urutan abjad. Di tempat lain, pengurutan asli dapat dipertahankan. Karena non-determinisme ini, hindari membuat asumsi tentang pengurutan kunci objek saat menulis kode, yang berinteraksi dengan parameter penyebaran &output.

JSON

json(arg1)

Mengonversi string JSON yang valid menjadi jenis data JSON.

Di Bicep, gunakan json fungsi .

Parameter-parameternya

Pengaturan Diperlukan Tipe Deskripsi
arg1 Ya string Nilai untuk dikonversi menjadi JSON. Untai (karakter) harus merupakan untai (karakter) JSON yang diformat dengan benar.

Mengembalikan nilai

Jenis data JSON dari string yang ditentukan, atau nilai kosong saat null ditentukan.

Komentar

Jika Anda perlu menyertakan nilai parameter atau variabel dalam objek JSON, gunakan format fungsi untuk membuat string yang Anda teruskan ke fungsi .

Anda juga dapat menggunakan null() untuk mendapatkan nilai null.

Contoh

Contoh berikut menunjukkan cara menggunakan fungsi json. Perhatikan bahwa Anda dapat meneruskan null untuk objek kosong:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "jsonEmptyObject": {
      "type": "string",
      "defaultValue": "null"
    },
    "jsonObject": {
      "type": "string",
      "defaultValue": "{\"a\": \"b\"}"
    },
    "jsonString": {
      "type": "string",
      "defaultValue": "\"test\""
    },
    "jsonBoolean": {
      "type": "string",
      "defaultValue": "true"
    },
    "jsonInt": {
      "type": "string",
      "defaultValue": "3"
    },
    "jsonArray": {
      "type": "string",
      "defaultValue": "[[1,2,3 ]"
    },
    "concatValue": {
      "type": "string",
      "defaultValue": "demo value"
    }
  },
  "resources": [
  ],
  "outputs": {
    "emptyObjectOutput": {
      "type": "bool",
      "value": "[empty(json(parameters('jsonEmptyObject')))]"
    },
    "objectOutput": {
      "type": "object",
      "value": "[json(parameters('jsonObject'))]"
    },
    "stringOutput": {
      "type": "string",
      "value": "[json(parameters('jsonString'))]"
    },
    "booleanOutput": {
      "type": "bool",
      "value": "[json(parameters('jsonBoolean'))]"
    },
    "intOutput": {
      "type": "int",
      "value": "[json(parameters('jsonInt'))]"
    },
    "arrayOutput": {
      "type": "array",
      "value": "[json(parameters('jsonArray'))]"
    },
    "concatObjectOutput": {
      "type": "object",
      "value": "[json(concat('{\"a\": \"', parameters('concatValue'), '\"}'))]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
emptyObjectOutput Boolean Benar
objectOutput Objek {"a": "b"}
stringOutput string ujian
booleanOutput Boolean Benar
intOutput Integer 3
arrayOutput Array [1, 2, 3]
concatObjectOutput Objek { "a": "nilai demo" }

panjang

length(arg1)

Mengembalikan jumlah elemen dalam array, karakter dalam untai (karakter), atau properti tingkat root dalam objek.

Di Bicep, gunakan length fungsi .

Parameter-parameternya

Pengaturan Diperlukan Tipe Deskripsi
arg1 Ya array, untai (karakter), atau objek Array yang digunakan untuk mendapatkan jumlah elemen, untai (karakter) yang digunakan untuk mendapatkan jumlah karakter, atau objek yang digunakan untuk mendapatkan jumlah properti tingkat root.

Mengembalikan nilai

Int.

Contoh

Contoh berikut menunjukkan cara menggunakan length dengan array dan string:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "arrayToTest": {
      "type": "array",
      "defaultValue": [
        "one",
        "two",
        "three"
      ]
    },
    "stringToTest": {
      "type": "string",
      "defaultValue": "One Two Three"
    },
    "objectToTest": {
      "type": "object",
      "defaultValue": {
        "propA": "one",
        "propB": "two",
        "propC": "three",
        "propD": {
          "propD-1": "sub",
          "propD-2": "sub"
        }
      }
    }
  },
  "resources": [],
  "outputs": {
    "arrayLength": {
      "type": "int",
      "value": "[length(parameters('arrayToTest'))]"
    },
    "stringLength": {
      "type": "int",
      "value": "[length(parameters('stringToTest'))]"
    },
    "objectLength": {
      "type": "int",
      "value": "[length(parameters('objectToTest'))]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
panjangArray Integer 3
stringLength Integer 13
objectLength Integer 4

nol

null()

Mengembalikan nilai kosong (null).

Fungsi null tidak tersedia di Bicep. Gunakan kata kunci null sebagai gantinya.

Parameter-parameternya

Fungsi null ini tidak menerima parameter apa pun.

Mengembalikan nilai

Nilai yang selalu null.

Contoh

Contoh berikut menggunakan null fungsi :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "emptyOutput": {
      "type": "bool",
      "value": "[empty(null())]"
    }
  }
}

Output dari contoh sebelumnya adalah:

Nama Tipe Nilai
emptyOutput Bool Benar

objectKeys

objectKeys(object)

Mengembalikan kunci dari objek, di mana objek adalah kumpulan pasangan kunci-nilai.

Di Bicep, gunakan objectKeys fungsi .

Parameter-parameternya

Pengaturan Diperlukan Tipe Deskripsi
objek Ya objek Objek , yang merupakan kumpulan pasangan kunci-nilai.

Mengembalikan nilai

Array.

Contoh

Contoh berikut menunjukkan cara menggunakan objectKeys dengan objek:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "obj": {
      "a": 1,
      "b": 2
    }
  },
  "resources": [],
  "outputs": {
    "keyArray": {
      "type": "array",
      "value": "[objectKeys(variables('obj'))]"
    }
  }
}

Output dari contoh sebelumnya adalah:

Nama Tipe Nilai
keyArray Array [ "a", "b" ]

Di JSON, objek adalah kumpulan pasangan kunci/nilai nol atau lebih yang tidak diurutkan. Pengurutan dapat berbeda bergantung pada implementasinya. Misalnya, fungsi item() Bicep mengurutkan objek dalam urutan abjad. Di tempat lain, pengurutan asli dapat dipertahankan. Karena non-determinisme ini, hindari membuat asumsi tentang pengurutan kunci objek saat menulis kode, yang berinteraksi dengan parameter penyebaran &output.

shallowMerge

shallowMerge(inputArray)

Menggabungkan array objek di mana hanya objek tingkat atas yang digabungkan. Ini berarti bahwa jika objek yang digabungkan berisi objek berlapis, objek berlapis tersebut tidak digabungkan secara mendalam; sebagai gantinya, mereka diganti sepenuhnya oleh properti yang sesuai dari objek penggabungan.

Di Bicep, gunakan shallowMerge fungsi .

Parameter-parameternya

Pengaturan Diperlukan Tipe Deskripsi
inputArray Ya array Array objek.

Mengembalikan nilai

Sebuah objek.

Contoh

Contoh berikut menunjukkan cara menggunakan shallowMerge:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "firstArray": [
      {
        "one": "a"
      },
      {
        "two": "b"
      },
      {
        "two": "c"
      }
    ],
    "secondArray": [
      {
        "one": "a",
        "nested": {
          "a": 1,
          "nested": {
            "c": 3
          }
        }
      },
      {
        "two": "b",
        "nested": {
          "b": 2
        }
      }
    ]
  },
  "resources": [],
  "outputs": {
    "firstOutput": {
      "type": "object",
      "value": "[shallowMerge(variables('firstArray'))]"
    },
    "secondOutput": {
      "type": "object",
      "value": "[shallowMerge(variables('secondArray'))]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
firstOutput objek {"one":"a","two":"c"}
secondOutput objek {"one":"a","nested":{"b":2},"two":"b"}

firstOutput menunjukkan properti dari objek penggabungan digabungkan ke dalam objek baru. Jika ada properti yang bertentangan (yaitu, properti dengan nama yang sama), properti dari objek terakhir yang digabungkan biasanya diutamakan.

secondOutput menunjukkan penggabungan dangkal tidak menggabungkan objek berlapis ini secara rekursif. Sebagai gantinya, seluruh objek berlapis digantikan oleh properti yang sesuai dari objek penggabungan.

tryGet

tryGet(itemToTest, keyOrIndex)

tryGet membantu Anda menghindari kegagalan penyebaran saat mencoba mengakses properti atau indeks yang tidak ada dalam objek atau array. Jika kunci atau indeks yang ditentukan tidak ada, tryGet mengembalikan null alih-alih melemparkan kesalahan.

Di Bicep, gunakan operator dereferensi aman .

Parameter-parameternya

Pengaturan Diperlukan Tipe Deskripsi
itemToTest Ya array, objek Objek atau array untuk dilihat.
keyOrIndex Ya string, int Kunci atau indeks untuk diambil dari array atau objek. Nama properti untuk objek atau indeks untuk array.

Mengembalikan nilai

Mengembalikan nilai pada kunci/indeks jika ada. Mengembalikan null jika kunci/indeks hilang atau di luar batas.

Contoh

Contoh berikut memeriksa apakah array, objek, dan string kosong:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "languageVersion": "2.0",
  "contentVersion": "1.0.0.0",
  "variables": {
    "users": {
      "name": "John Doe",
      "age": 30
    },
    "colors": [
      "red",
      "green"
    ]
  },
  "resources": [],
  "outputs": {
    "region": {
      "type": "string",
      "nullable": true,
      "value": "[tryGet(variables('users'), 'region')]"
    },
    "name": {
      "type": "string",
      "nullable": true,
      "value": "[tryGet(variables('users'), 'name')]"
    },
    "firstColor": {
      "type": "string",
      "nullable": true,
      "value": "[tryGet(variables('colors'), 0)]"
    }
  }
}

Output dari contoh sebelumnya adalah:

Nama Tipe Nilai
wilayah string (NULL)
Nama string John Doe
warna pertama string Merah

penyatuan

union(arg1, arg2, arg3, ...)

Mengembalikan satu array atau objek dengan semua elemen dari parameter. Untuk array, nilai duplikat disertakan sekali. Untuk objek, nama properti duplikat hanya disertakan sekali.

Di Bicep, gunakan union fungsi .

Parameter-parameternya

Pengaturan Diperlukan Tipe Deskripsi
arg1 Ya array atau objek Nilai pertama yang digunakan untuk menggabungkan elemen.
arg2 Ya array atau objek Nilai kedua yang digunakan untuk menggabungkan elemen.
lebih banyak argumen Tidak. array atau objek Lebih banyak nilai yang digunakan untuk menggabungkan elemen.

Mengembalikan nilai

Array atau objek.

Komentar

Fungsi ini union menggunakan urutan parameter untuk menentukan urutan dan nilai hasilnya.

Untuk array, fungsi akan muncul di setiap elemen dalam parameter pertama dan menambahkannya ke hasil jika belum tersedia. Kemudian, ia mengulangi proses untuk parameter kedua dan parameter lainnya. Jika nilai sudah tersedia, penempatan sebelumnya dalam array dipertahankan.

Untuk objek, nilai dan nama properti dari parameter pertama ditambahkan ke hasil. Untuk parameter selanjutnya, setiap nama baru akan ditambahkan ke hasil. Jika parameter berikutnya memiliki properti dengan nama yang sama, nilai tersebut menimpa nilai yang sudah ada. Urutan properti tidak dijamin.

Fungsi ini union tidak hanya menggabungkan elemen tingkat atas tetapi juga secara rekursif menggabungkan array dan objek berlapis di dalamnya. Lihat contoh kedua di bagian berikut.

Contoh

Contoh berikut menunjukkan cara menggunakan union dengan array dan objek:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstObject": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "b",
        "three": "c1"
      }
    },
    "secondObject": {
      "type": "object",
      "defaultValue": {
        "three": "c2",
        "four": "d",
        "five": "e"
      }
    },
    "firstArray": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    },
    "secondArray": {
      "type": "array",
      "defaultValue": [ "three", "four" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "objectOutput": {
      "type": "object",
      "value": "[union(parameters('firstObject'), parameters('secondObject'))]"
    },
    "arrayOutput": {
      "type": "array",
      "value": "[union(parameters('firstArray'), parameters('secondArray'))]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
objectOutput Objek {"one": "a", "two": "b", "three": "c2", "four": "d", "five": "e"}
arrayOutput Array ["one", "two", "three", "four"]

Contoh berikut menunjukkan kemampuan penggabungan mendalam:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "firstObject": {
      "property": {
        "one": "a",
        "two": "b",
        "three": "c1"
      },
      "nestedArray": [
        1,
        2
      ]
    },
    "secondObject": {
      "property": {
        "three": "c2",
        "four": "d",
        "five": "e"
      },
      "nestedArray": [
        3,
        4
      ]
    },
    "firstArray": [
      [
        "one",
        "two"
      ],
      [
        "three"
      ]
    ],
    "secondArray": [
      [
        "three"
      ],
      [
        "four",
        "two"
      ]
    ]
  },
  "resources": [],
  "outputs": {
    "objectOutput": {
      "type": "Object",
      "value": "[union(variables('firstObject'), variables('secondObject'))]"
    },
    "arrayOutput": {
      "type": "Array",
      "value": "[union(variables('firstArray'), variables('secondArray'))]"
    }
  }
}

Output dari contoh sebelumnya adalah:

Nama Tipe Nilai
objectOutput Objek {"property":{"one":"a","two":"b","three":"c2","four":"d","five":"e"},"nestedArray":[3,4]}
arrayOutput Array [["one","two"],["three"],["four","two"]]

Jika array berlapis digabungkan, maka nilai objectOutput.nestedArray adalah [1, 2, 3, 4], dan nilai arrayOutput adalah [["one", "two", "three"], ["three", "four", "two"]]] .

Langkah selanjutnya

Untuk deskripsi bagian-bagian dalam templat ARM, lihat Memahami struktur dan sintaksis templat ARM.