Bagikan melalui


Fungsi array untuk templat ARM

Artikel ini menjelaskan fungsi templat untuk bekerja dengan array.

Untuk mendapatkan array nilai string yang dibatasi oleh nilai, lihat memisahkan.

Petunjuk / Saran

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

array

array(convertToArray)

Mengonversi nilai menjadi array.

Di Bicep, gunakan array fungsi .

Parameter

Pengaturan Wajib Tipe Deskripsi
convertToArray Ya int, string, array, atau objek Nilai untuk dikonversi menjadi array.

Nilai hasil

Array.

Contoh

Contoh berikut menunjukkan cara menggunakan array fungsi dengan jenis yang berbeda:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "intToConvert": {
      "type": "int",
      "defaultValue": 1
    },
    "stringToConvert": {
      "type": "string",
      "defaultValue": "efgh"
    },
    "objectToConvert": {
      "type": "object",
      "defaultValue": {
        "a": "b",
        "c": "d"
      }
    }
  },
  "resources": [
  ],
  "outputs": {
    "intOutput": {
      "type": "array",
      "value": "[array(parameters('intToConvert'))]"
    },
    "stringOutput": {
      "type": "array",
      "value": "[array(parameters('stringToConvert'))]"
    },
    "objectOutput": {
      "type": "array",
      "value": "[array(parameters('objectToConvert'))]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
intOutput Array [1]
stringOutput Array ["efgh"]
objectOutput Array [{"a": "b", "c": "d"}]

concat

concat(arg1, arg2, arg3, ...)

Menggabungkan beberapa nilai array dan mengembalikan array yang digabungkan, atau menggabungkan beberapa string dan mengembalikan string yang digabungkan.

Di Bicep, gunakan concat fungsi .

Parameter

Pengaturan Wajib Tipe Deskripsi
arg1 Ya array atau string Array atau string pertama untuk perangkaian.
lebih banyak argumen Tidak. array atau string Lebih banyak array atau untai (karakter) dalam urutan yang berurutan untuk perangkaian.

Fungsi ini dapat mengambil sejumlah argumen dan dapat menerima string atau array untuk parameter. Namun, Anda tidak dapat menyediakan array dan string untuk parameter. Array hanya digabungkan dengan array lainnya.

Nilai hasil

String atau array nilai yang digabungkan.

Contoh

Contoh berikut menunjukkan cara menggabungkan dua array:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstArray": {
      "type": "array",
      "defaultValue": [
        "1-1",
        "1-2",
        "1-3"
      ]
    },
    "secondArray": {
      "type": "array",
      "defaultValue": [
        "2-1",
        "2-2",
        "2-3"
      ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "return": {
      "type": "array",
      "value": "[concat(parameters('firstArray'), parameters('secondArray'))]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
kembali Array ["1-1", "1-2", "1-3", "2-1", "2-2", "2-3"]

Contoh berikut menunjukkan cara menggabungkan dua nilai string dan mengembalikan string yang digabungkan:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "prefix": {
      "type": "string",
      "defaultValue": "prefix"
    }
  },
  "resources": [],
  "outputs": {
    "concatOutput": {
      "type": "string",
      "value": "[concat(parameters('prefix'), '-', uniqueString(resourceGroup().id))]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
concatOutput string prefiks-5yj4yjf5mbg72

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

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

Nilai hasil

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 Salah
objectTrue Bool Benar
objectFalse Bool Salah
arrayTrue Bool Benar
arrayFalse Bool Salah

createArray

createArray(arg1, arg2, arg3, ...)

Membuat array dari parameter.

Di Bicep, fungsi createArray tidak didukung. Untuk membuat array, lihat jenis data array Bicep.

Parameter

Pengaturan Wajib Tipe Deskripsi
argumen Tidak. String, Bilangan Bulat, Array, atau Objek Nilai dalam array.

Nilai hasil

Array. Ketika tidak ada parameter yang disediakan, parameter akan mengembalikan array kosong.

Contoh

Contoh berikut menunjukkan cara menggunakan createArray dengan jenis yang berbeda:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "objectToTest": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "b",
        "three": "c"
      }
    },
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "stringArray": {
      "type": "array",
      "value": "[createArray('a', 'b', 'c')]"
    },
    "intArray": {
      "type": "array",
      "value": "[createArray(1, 2, 3)]"
    },
    "objectArray": {
      "type": "array",
      "value": "[createArray(parameters('objectToTest'))]"
    },
    "arrayArray": {
      "type": "array",
      "value": "[createArray(parameters('arrayToTest'))]"
    },
    "emptyArray": {
      "type": "array",
      "value": "[createArray()]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
stringArray Array ["a", "b", "c"]
intArray Array [1, 2, 3]
objectArray Array [{"one": "a", "two": "b", "three": "c"}]
arrayArray Array [["one", "two", "three"]]
emptyArray Array []

kosong

empty(itemToTest)

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

Di Bicep, gunakan empty fungsi .

Parameter

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

Nilai hasil

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

pertama

first(arg1)

Mengembalikan elemen pertama dari array, atau karakter pertama string.

Di Bicep, gunakan first fungsi .

Parameter

Pengaturan Wajib Tipe Deskripsi
arg1 Ya array atau string Nilai untuk mengambil elemen atau karakter pertama.

Nilai hasil

Jenis (string, int, array, atau objek) dari elemen pertama dalam array, atau karakter pertama dari string.

Contoh

Contoh berikut menunjukkan cara menggunakan first fungsi 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" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "arrayOutput": {
      "type": "string",
      "value": "[first(parameters('arrayToTest'))]"
    },
    "stringOutput": {
      "type": "string",
      "value": "[first('One Two Three')]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
arrayOutput string satu
stringOutput string O

indexFromEnd

indexFromEnd(sourceArray, reverseIndex)

Mengembalikan elemen array dengan menghitung mundur dari akhir. Ini berguna ketika Anda ingin mereferensikan elemen mulai dari akhir daftar daripada awal. Fungsi ini tryIndexFromEnd adalah versi aman dari indexFromEnd.

Di Bicep, gunakan operator pengakses indeks Cadangan .

Parameter

Pengaturan Wajib Tipe Deskripsi
sourceArray Ya array Nilai untuk mengambil elemen dengan menghitung mundur dari akhir.
reverseIndex Ya bilangan bulat Indeks berbasis satu dari akhir array.

Nilai hasil

Satu elemen dari array, dipilih dengan menghitung mundur dari akhir array.

Contoh

Contoh berikut menunjukkan cara menggunakan indexFromEnd fungsi :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "items": [
      "apple",
      "banana",
      "orange",
      "grape"
    ]
  },
  "resources": [],
  "outputs": {
    "secondToLast": {
      "type": "string",
      "value": "[indexFromEnd(variables('items'), 2)]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
secondToLast string jeruk

indexOf

indexOf(arrayToSearch, itemToFind)

Mengembalikan bilangan bulat untuk indeks kemunculan pertama item dalam array. Perbandingannya adalah peka huruf besar/kecil untuk string.

Parameter

Pengaturan Wajib Tipe Deskripsi
arrayToSearch Ya array Array yang digunakan untuk menemukan indeks item yang dicari.
itemToFind Ya int, string, array, atau objek Item yang dicari dalam array.

Nilai hasil

Bilangan bulat yang mewakili indeks pertama item dalam array. Indeks berbasis nol. Jika item tidak ditemukan, -1 dikembalikan.

Contoh

Contoh berikut menunjukkan cara penggunaan fungsi indexOf dan lastIndexOf:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "names": [
      "one",
      "two",
      "three"
    ],
    "numbers": [
      4,
      5,
      6
    ],
    "collection": [
      "[variables('names')]",
      "[variables('numbers')]"
    ],
    "duplicates": [
      1,
      2,
      3,
      1
    ]
  },
  "resources": [],
  "outputs": {
    "index1": {
      "type": "int",
      "value": "[lastIndexOf(variables('names'), 'two')]"
    },
    "index2": {
      "type": "int",
      "value": "[indexOf(variables('names'), 'one')]"
    },
    "notFoundIndex1": {
      "type": "int",
      "value": "[lastIndexOf(variables('names'), 'Three')]"
    },
    "index3": {
      "type": "int",
      "value": "[lastIndexOf(variables('numbers'), 4)]"
    },
    "index4": {
      "type": "int",
      "value": "[indexOf(variables('numbers'), 6)]"
    },
    "notFoundIndex2": {
      "type": "int",
      "value": "[lastIndexOf(variables('numbers'), '5')]"
    },
    "index5": {
      "type": "int",
      "value": "[indexOf(variables('collection'), variables('numbers'))]"
    },
    "index6": {
      "type": "int",
      "value": "[indexOf(variables('duplicates'), 1)]"
    },
    "index7": {
      "type": "int",
      "value": "[lastIndexOf(variables('duplicates'), 1)]"
    }
  }
}

Output dari contoh sebelumnya adalah:

Nama Tipe Nilai
index1 int (integer) 1
index2 int (integer) 0
index3 int (integer) 0
index4 int (integer) 2
index5 int (integer) 1
index6 int (integer) 0
index7 int (integer) 3
notFoundIndex1 int (integer) -1
notFoundIndex2 int (integer) -1

persimpangan

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

Mengembalikan satu array atau objek dengan elemen umum dari parameter.

Di Bicep, gunakan intersection fungsi .

Parameter

Pengaturan Wajib 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.

Nilai hasil

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"]

terakhir

last(arg1)

Mengembalikan elemen terakhir dari array, atau karakter terakhir dari string.

Di Bicep, gunakan last fungsi .

Parameter

Pengaturan Wajib Tipe Deskripsi
arg1 Ya array atau string Nilai untuk mengambil elemen atau karakter terakhir.

Nilai hasil

Jenis (string, int, array, atau objek) dari elemen terakhir dalam array, atau karakter terakhir dari string.

Contoh

Contoh berikut menunjukkan cara menggunakan last fungsi 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" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "arrayOutput": {
      "type": "string",
      "value": "[last(parameters('arrayToTest'))]"
    },
    "stringOutput": {
      "type": "string",
      "value": "[last('One Two Three')]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
arrayOutput string tiga
stringOutput string e

lastIndexOf

lastIndexOf(arrayToSearch, itemToFind)

Mengembalikan bilangan bulat untuk indeks kemunculan terakhir item dalam array. Perbandingannya adalah peka huruf besar/kecil untuk string.

Parameter

Pengaturan Wajib Tipe Deskripsi
arrayToSearch Ya array Array yang digunakan untuk menemukan indeks item yang dicari.
itemToFind Ya int, string, array, atau objek Item yang dicari dalam array.

Nilai hasil

Bilangan bulat yang mewakili indeks terakhir item dalam array. Indeks berbasis nol. Jika item tidak ditemukan, -1 dikembalikan.

Contoh

Contoh berikut menunjukkan cara penggunaan fungsi indexOf dan lastIndexOf:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "names": [
      "one",
      "two",
      "three"
    ],
    "numbers": [
      4,
      5,
      6
    ],
    "collection": [
      "[variables('names')]",
      "[variables('numbers')]"
    ],
    "duplicates": [
      1,
      2,
      3,
      1
    ]
  },
  "resources": [],
  "outputs": {
    "index1": {
      "type": "int",
      "value": "[lastIndexOf(variables('names'), 'two')]"
    },
    "index2": {
      "type": "int",
      "value": "[indexOf(variables('names'), 'one')]"
    },
    "notFoundIndex1": {
      "type": "int",
      "value": "[lastIndexOf(variables('names'), 'Three')]"
    },
    "index3": {
      "type": "int",
      "value": "[lastIndexOf(variables('numbers'), 4)]"
    },
    "index4": {
      "type": "int",
      "value": "[indexOf(variables('numbers'), 6)]"
    },
    "notFoundIndex2": {
      "type": "int",
      "value": "[lastIndexOf(variables('numbers'), '5')]"
    },
    "index5": {
      "type": "int",
      "value": "[indexOf(variables('collection'), variables('numbers'))]"
    },
    "index6": {
      "type": "int",
      "value": "[indexOf(variables('duplicates'), 1)]"
    },
    "index7": {
      "type": "int",
      "value": "[lastIndexOf(variables('duplicates'), 1)]"
    }
  }
}

Output dari contoh sebelumnya adalah:

Nama Tipe Nilai
index1 int (integer) 1
index2 int (integer) 0
index3 int (integer) 0
index4 int (integer) 2
index5 int (integer) 1
index6 int (integer) 0
index7 int (integer) 3
notFoundIndex1 int (integer) -1
notFoundIndex2 int (integer) -1

panjang

length(arg1)

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

Di Bicep, gunakan length fungsi .

Parameter

Pengaturan Wajib 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.

Nilai hasil

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

Anda bisa menggunakan fungsi ini dengan array untuk menentukan jumlah iterasi saat membuat sumber daya. Dalam contoh berikut, parameter siteNames mengacu pada array nama yang akan digunakan saat membuat situs web:

"copy": {
  "name": "websitescopy",
  "count": "[length(parameters('siteNames'))]"
}

Untuk informasi selengkapnya tentang menggunakan fungsi ini dengan array, lihat Iterasi sumber daya dalam templat ARM.

maks

max(arg1)

Mengembalikan nilai maksimum dari array bilangan bulat atau daftar bilangan bulat yang dipisahkan koma.

Di Bicep, gunakan max fungsi .

Parameter

Pengaturan Wajib Tipe Deskripsi
arg1 Ya array bilangan bulat, atau daftar bilangan bulat yang dipisahkan koma Kumpulan untuk mendapatkan nilai maksimum.

Nilai hasil

Int yang mewakili nilai maksimum.

Contoh

Contoh berikut menunjukkan cara menggunakan max dengan array dan daftar bilangan bulat:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ 0, 3, 2, 5, 4 ]
    }
  },
  "resources": [],
  "outputs": {
    "arrayOutput": {
      "type": "int",
      "value": "[max(parameters('arrayToTest'))]"
    },
    "intOutput": {
      "type": "int",
      "value": "[max(0,3,2,5,4)]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
arrayOutput Integer 5
intOutput Integer 5

mnt

min(arg1)

Mengembalikan nilai minimum dari array bilangan bulat atau daftar bilangan bulat yang dipisahkan koma.

Di Bicep, gunakan min fungsi .

Parameter

Pengaturan Wajib Tipe Deskripsi
arg1 Ya array bilangan bulat, atau daftar bilangan bulat yang dipisahkan koma Kumpulan untuk mendapatkan nilai minimum.

Nilai hasil

Int yang mewakili nilai maksimum.

Contoh

Contoh berikut menunjukkan cara menggunakan min dengan array dan daftar bilangan bulat:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ 0, 3, 2, 5, 4 ]
    }
  },
  "resources": [],
  "outputs": {
    "arrayOutput": {
      "type": "int",
      "value": "[min(parameters('arrayToTest'))]"
    },
    "intOutput": {
      "type": "int",
      "value": "[min(0,3,2,5,4)]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
arrayOutput Integer 0
intOutput Integer 0

rentang

range(startIndex, count)

Membuat array bilangan bulat dari bilangan bulat awal dan berisi sejumlah item.

Di Bicep, gunakan range fungsi .

Parameter

Pengaturan Wajib Tipe Deskripsi
startIndex (indeks awal) Ya int (integer) Bilangan bulat pertama dalam array. Jumlah startIndex dan hitungan harus tidak lebih besar dari 2147483647.
jumlah Ya int (integer) Jumlah bilangan bulat dalam array. Harus bilangan bulat non-negatif hingga 10000.

Nilai hasil

Array bilangan bulat.

Contoh

Contoh berikut menunjukkan cara menggunakan range fungsi :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "startingInt": {
      "type": "int",
      "defaultValue": 5
    },
    "numberOfElements": {
      "type": "int",
      "defaultValue": 3
    }
  },
  "resources": [],
  "outputs": {
    "rangeOutput": {
      "type": "array",
      "value": "[range(parameters('startingInt'),parameters('numberOfElements'))]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
rangeOutput Array [5, 6, 7]

lompati

skip(originalValue, numberToSkip)

Mengembalikan array dengan semua elemen setelah nomor yang ditentukan dalam array, atau mengembalikan string dengan semua karakter setelah nomor yang ditentukan dalam string.

Di Bicep, gunakan skip fungsi .

Parameter

Pengaturan Wajib Tipe Deskripsi
originalValue Ya array atau string Array atau string yang digunakan untuk melompati.
numberToSkip Ya int (integer) Jumlah elemen atau karakter yang akan dilompati. Jika nilai ini adalah 0 atau kurang, semua elemen atau karakter dalam nilai dikembalikan. Jika lebih besar dari panjang array atau string, array atau string kosong akan dikembalikan.

Nilai hasil

Array atau string.

Contoh

Contoh berikut melewati jumlah elemen yang ditentukan dalam array dan jumlah karakter yang ditentukan dalam string:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testArray": {
      "type": "array",
      "defaultValue": [
        "one",
        "two",
        "three"
      ]
    },
    "elementsToSkip": {
      "type": "int",
      "defaultValue": 2
    },
    "testString": {
      "type": "string",
      "defaultValue": "one two three"
    },
    "charactersToSkip": {
      "type": "int",
      "defaultValue": 4
    }
  },
  "resources": [],
  "outputs": {
    "arrayOutput": {
      "type": "array",
      "value": "[skip(parameters('testArray'),parameters('elementsToSkip'))]"
    },
    "stringOutput": {
      "type": "string",
      "value": "[skip(parameters('testString'),parameters('charactersToSkip'))]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
arrayOutput Array ["tiga"]
stringOutput string dua tiga

ambil

take(originalValue, numberToTake)

Mengembalikan array atau string. Array memiliki jumlah elemen yang ditentukan sejak awal array. Sebuah string memiliki jumlah karakter yang ditentukan dari awal string.

Di Bicep, gunakan take fungsi .

Parameter

Pengaturan Wajib Tipe Deskripsi
originalValue Ya array atau string Array atau string untuk mengambil elemen.
numberToTake Ya int (integer) Jumlah elemen atau karakter yang akan diambil. Jika nilai ini adalah 0 atau kurang, array atau string kosong dikembalikan. Jika lebih besar dari panjang array atau string yang diberikan, semua elemen dalam array atau string dikembalikan.

Nilai hasil

Array atau string.

Contoh

Contoh berikut mengambil jumlah elemen yang ditentukan dari array dan karakter dari string:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testArray": {
      "type": "array",
      "defaultValue": [
        "one",
        "two",
        "three"
      ]
    },
    "elementsToTake": {
      "type": "int",
      "defaultValue": 2
    },
    "testString": {
      "type": "string",
      "defaultValue": "one two three"
    },
    "charactersToTake": {
      "type": "int",
      "defaultValue": 2
    }
  },
  "resources": [],
  "outputs": {
    "arrayOutput": {
      "type": "array",
      "value": "[take(parameters('testArray'),parameters('elementsToTake'))]"
    },
    "stringOutput": {
      "type": "string",
      "value": "[take(parameters('testString'),parameters('charactersToTake'))]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
arrayOutput Array ["satu", "dua"]
stringOutput string aktif

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

Pengaturan Wajib 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.

Nilai hasil

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

tryIndexFromEnd

tryndexFromEnd(sourceArray, reverseIndex)

Fungsi ini tryIndexFromEnd adalah versi aman dari indexFromEnd. Ini mengambil nilai dari array dengan menghitung mundur dari akhir tanpa melemparkan kesalahan jika indeks berada di luar rentang.

Di Bicep, gunakan operator pengakses indeks cadangan dan operator Dereferensi aman .

Parameter

Pengaturan Wajib Tipe Deskripsi
sourceArray Ya array Nilai untuk mengambil elemen dengan menghitung mundur dari akhir.
reverseIndex Ya bilangan bulat Indeks berbasis satu dari akhir array.

Nilai hasil

Jika indeks valid (dalam batas array), mengembalikan elemen array pada indeks terbalik tersebut. Jika indeks berada di luar rentang, mengembalikan null alih-alih melemparkan kesalahan.

Contoh

Contoh berikut menunjukkan cara menggunakan tryIndexFromEnd fungsi :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "items": [
      "apple",
      "banana",
      "orange",
      "grape"
    ]
  },
  "resources": [],
  "outputs": {
    "secondToLast": {
      "type": "string",
      "value": "[tryIndexFromEnd(variables('items'), 2)]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
secondToLast string jeruk

Contoh berikut menunjukkan skenario di luar batas:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "languageVersion": "2.0",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "items": {
      "type": "array",
      "defaultValue": [
        "apple",
        "banana",
        "orange",
        "grape"
      ]
    }
  },
  "resources": {},
  "outputs": {
    "outOfBound": {
      "type": "string",
      "nullable": true,
      "value": "[tryIndexFromEnd(parameters('items'), 5)]"
    }
  }
}

Output nilai default dari contoh sebelumnya adalah:

Nama Tipe Nilai
outOfBound string (null)

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

Pengaturan Wajib 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.

Nilai hasil

Array atau objek.

Keterangan

union function menggunakan urutan parameter untuk menentukan urutan dan nilai hasil.

Untuk array, fungsi akan muncul di setiap elemen dalam parameter pertama dan menambahkannya ke hasil jika belum tersedia. Kemudian, fungsi tersebut mengulangi proses untuk parameter kedua serta 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 objek berlapis di dalamnya. Nilai array berlapis tidak digabungkan. 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 berikutnya