Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описываются функции шаблонов для работы с массивами.
Чтобы получить массив строковых значений, разделенных определенным значением, используйте split.
Совет
Bicep рекомендуется, так как он предлагает те же возможности, что и шаблоны ARM, и синтаксис проще использовать. Дополнительные сведения см. в разделе array "Функции".
array
array(convertToArray)
Преобразует значение в массив.
В Bicep используйте функцию array .
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| convertToArray | Да | целое число, строка, массив или объект | Значение, которое необходимо преобразовать в массив. |
Возвращаемое значение
Массив объектов .
Пример
В следующем примере показано, как использовать функцию array с разными типами:
{
"$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'))]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| intOutput | Массив | [1] |
| stringOutput | Массив | ["efgh"] |
| objectOutput | Массив | [{"a": "b", "c": "d"}] |
concat
concat(arg1, arg2, arg3, ...)
Объединяет несколько массивов и возвращает объединенный массив или объединяет несколько строковых значений и возвращает объединенную строку.
В Bicep используйте функцию concat .
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| Арг1 | Да | массив или строка | Первый массив или строка для объединения. |
| дополнительные аргументы | нет | массив или строка | Дополнительные массивы или строки в последовательном порядке для объединения. |
Эта функция может принимать любое количество аргументов и принимать строки или массивы для параметров. Однако вы не можете указать для параметров и массивы, и строки. Массивы объединяются только с другими массивами.
Возвращаемое значение
Строка или массив объединенных значений.
Пример
В следующем примере показано, как объединить два массива:
{
"$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'))]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| Ввод | Массив | ["1-1", "1-2", "1-3", "2-1", "2-2", "2-3"] |
В следующем примере показано, как объединить два строковых значения и вернуть сцепленную строку:
{
"$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))]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| concatOutput | Строка | prefix-5yj4yjf5mbg72 |
содержит
contains(container, itemToFind)
Проверяет, содержит ли массив значение, объект содержит ключ или строку, содержащую подстроку. При сравнении строк учитывается регистр. Тем не менее при проверке объекта на наличие ключа сравнение выполняется без учета регистра.
В Bicep используйте функцию contains .
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| контейнер | Да | массив, объект или строка | Значение, содержащее значение, которое необходимо найти. |
| itemToFind | Да | строка или целое число | Значение, которое необходимо найти. |
Возвращаемое значение
True, если элемент найден. В противном случае — False.
Пример
В следующем примере показано, как использовать contains с разными типами:
{
"$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')]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| stringTrue | Булев | Истина |
| stringFalse | Булев | Неправда |
| objectTrue | Булев | Истина |
| objectFalse | Булев | Неправда |
| arrayTrue | Булев | Истина |
| arrayFalse | Булев | Неправда |
createArray
createArray(arg1, arg2, arg3, ...)
Создает массив из параметров.
Функция createArray не поддерживается в Bicep. Сведения о создании массива см. в разделе о типе данных Bicep array.
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| Аргументы | нет | Строка, целое число, массив или объект | Значения в массиве. |
Возвращаемое значение
Массив объектов . Если параметры не указаны, возвращается пустой массив.
Пример
В следующем примере показано, как использовать createArray с разными типами:
{
"$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()]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| stringArray | Массив | ["a", "b", "c"] |
| intArray | Массив | [1, 2, 3] |
| objectArray | Массив | [{"one": "a", "two": "b", "три": "c"}] |
| arrayArray | Массив | [["one", "two", "three"]] |
| emptyArray | Массив | [] |
пусто
empty(itemToTest)
Определяет, являются ли пустыми массив, объект или строка.
В Bicep используйте функцию empty .
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| itemToTest | Да | массив, объект или строка | Значение, которое необходимо проверить на наличие содержимого. |
Возвращаемое значение
Возвращает результат True, если значение пустое. В противном случае — False.
Пример
В следующем примере проверяется, является ли массив, объект и строка пустыми:
{
"$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'))]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| arrayEmpty | Булев | Истина |
| objectEmpty | Булев | Истина |
| stringEmpty | Булев | Истина |
первая
first(arg1)
Возвращает первый элемент массива или первый знак строки.
В Bicep используйте функцию first .
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| Арг1 | Да | массив или строка | Значение, из которого необходимо извлечь первый элемент или знак. |
Возвращаемое значение
Тип (строка, целое число, массив или объект) первого элемента в массиве или строка первого знака.
Пример
В следующем примере показано, как использовать функцию first с массивом и строкой:
{
"$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')]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| arrayOutput | Строка | один |
| stringOutput | Строка | О |
indexFromEnd
indexFromEnd(sourceArray, reverseIndex)
Возвращает элемент массива, подсчитывая обратно от конца. Это полезно, если вы хотите ссылаться на элементы, начиная с конца списка, а не в начале. Функция tryIndexFromEnd является безопасной версией indexFromEnd.
В Bicep используйте оператор доступа к зарезервированным индексам .
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| sourceArray | Да | array | Значение для извлечения элемента, подсчитывая обратно от конца. |
| reverseIndex | Да | целое число | Одноуровневый индекс из конца массива. |
Возвращаемое значение
Один элемент из массива, выбранный путем подсчета назад от конца массива.
Пример
В следующем примере показано, как использовать функцию indexFromEnd :
{
"$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)]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| secondToLast | Строка | апельсин |
индекс поиска
indexOf(arrayToSearch, itemToFind)
Возвращает целое число для индекса первого вхождения элемента в массиве. При сравнении строк учитывается регистр.
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| arrayToSearch | Да | array | Массив, используемый для поиска индекса искомого элемента. |
| itemToFind | Да | целое число, строка, массив или объект | Элемент, который нужно найти в массиве. |
Возвращаемое значение
Целое число, представляющее первый индекс у элемента в массиве. Значения индекса начинаются с нуля. Если элемент не найден, то возвращается значение –1.
Примеры
Следующий пример демонстрирует использование функций indexOf и 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)]"
}
}
}
Выходные данные из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| index1 | INT | 1 |
| index2 | INT | 0 |
| index3 | INT | 0 |
| Index4 | INT | 2 |
| index5 | INT | 1 |
| index6 | INT | 0 |
| index7 | INT | 3 |
| notFoundIndex1 | INT | -1 |
| notFoundIndex2 | INT | -1 |
пересечение
intersection(arg1, arg2, arg3, ...)
Возвращает из параметров один массив или объект с общими элементами.
В Bicep используйте функцию intersection .
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| Арг1 | Да | массив или объект | Первое значение для поиска общих элементов. |
| arg2 | Да | массив или объект | Второе значение для поиска общих элементов. |
| дополнительные аргументы | нет | массив или объект | Дополнительные значения для поиска общих элементов. |
Возвращаемое значение
Массив или объект с общими элементами.
Пример
В следующем примере показано, как использовать intersection массивы и объекты:
{
"$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'))]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| objectOutput | Объект | {"one": "a", "три": "c"} |
| arrayOutput | Массив | ["two", "три"] |
последняя
last(arg1)
Возвращает последний элемент массива или последний знак строки.
В Bicep используйте функцию last .
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| Арг1 | Да | массив или строка | Значение, из которого необходимо извлечь последний элемент или знак. |
Возвращаемое значение
Тип (строка, целое число, массив или объект) последнего элемента в массиве или последнего символа в строке.
Пример
В следующем примере показано, как использовать функцию last с массивом и строкой:
{
"$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')]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| arrayOutput | Строка | три |
| stringOutput | Строка | е |
lastIndexOf
lastIndexOf(arrayToSearch, itemToFind)
Возвращает целое число для индекса последнего вхождения элемента в массиве. При сравнении строк учитывается регистр.
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| arrayToSearch | Да | array | Массив, используемый для поиска индекса искомого элемента. |
| itemToFind | Да | целое число, строка, массив или объект | Элемент, который нужно найти в массиве. |
Возвращаемое значение
Целое число, представляющее последний индекс у элемента в массиве. Значения индекса начинаются с нуля. Если элемент не найден, то возвращается значение –1.
Примеры
Следующий пример демонстрирует использование функций indexOf и 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)]"
}
}
}
Выходные данные из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| index1 | INT | 1 |
| index2 | INT | 0 |
| index3 | INT | 0 |
| Index4 | INT | 2 |
| index5 | INT | 1 |
| index6 | INT | 0 |
| index7 | INT | 3 |
| notFoundIndex1 | INT | -1 |
| notFoundIndex2 | INT | -1 |
длина
length(arg1)
Возвращает количество элементов в массиве, символов в строке или свойств корневого уровня в объекте.
В Bicep используйте функцию length .
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| Арг1 | Да | массив, строка или объект | Массив, используемый для получения числа элементов, строка, используемая для получения числа символов, или объект, используемый для получения числа свойств корневого уровня. |
Возвращаемое значение
Целое число.
Пример
В следующем примере показано, как использовать length массив и строку:
{
"$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'))]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| длина массива | int | 3 |
| stringLength | int | 13 (тринадцать) |
| objectLength | int | 4 |
Эту функцию можно использовать с массивом для указания числа итераций при создании ресурсов. В следующем примере параметр siteNames ссылается на массив имен, используемых при создании веб-сайтов:
"copy": {
"name": "websitescopy",
"count": "[length(parameters('siteNames'))]"
}
Дополнительные сведения об использовании этой функции с массивом см. в статье Итерация ресурсов в шаблонах ARM.
макс.
max(arg1)
Возвращает максимальное значение из массива целых чисел или разделенный запятыми список целых чисел.
В Bicep используйте функцию max .
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| Арг1 | Да | массив целых чисел или разделенный запятыми список целых чисел | Коллекция, для которой необходимо получить максимальное значение. |
Возвращаемое значение
Целое число, представляющее максимальное значение.
Пример
В следующем примере показано, как использовать max массив и список целых чисел:
{
"$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)]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| arrayOutput | int | 5 |
| intOutput | int | 5 |
мин
min(arg1)
Возвращает минимальное значение из массива целых чисел или разделенный запятыми список целых чисел.
В Bicep используйте функцию min .
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| Арг1 | Да | массив целых чисел или разделенный запятыми список целых чисел | Коллекция, для которой необходимо получить минимальное значение. |
Возвращаемое значение
Целое число, представляющее минимальное значение.
Пример
В следующем примере показано, как использовать min массив и список целых чисел:
{
"$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)]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| arrayOutput | int | 0 |
| intOutput | int | 0 |
range
range(startIndex, count)
Создает массив целых чисел, используя начальное целое число и количество элементов.
В Bicep используйте функцию range .
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| начальныйИндекс | Да | INT | Первое целое число в массиве. Сумма значений startIndex и count не должна превышать 2147483647. |
| подсчет | Да | INT | Количество целых чисел в массиве. Значение должно быть неотрицательным целым числом не больше 10000. |
Возвращаемое значение
Массив целых чисел.
Пример
В следующем примере показано, как использовать функцию range :
{
"$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'))]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| rangeOutput | Массив | [5, 6, 7] |
skip
skip(originalValue, numberToSkip)
Возвращает массив, содержащий все элементы из исходного массива, начиная с заданной позиции в массиве, или строку, содержащую все знаки из исходной строки, начиная с заданной позиции в строке.
В Bicep используйте функцию skip .
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| originalValue | Да | массив или строка | Массив или строка, используемые для пропуска. |
| numberToSkip | Да | INT | Число элементов или знаков, которые необходимо пропустить. Если это значение меньше или равно 0, то возвращаются все элементы или знаки в значении. Если это значение превышает длину массива или строки, возвращается пустой массив или строка. |
Возвращаемое значение
Массив или строка.
Пример
В следующем примере пропускается указанное число элементов в массиве и указанное число символов в строке:
{
"$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'))]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| arrayOutput | Массив | ["три"] |
| stringOutput | Строка | два трех |
взять
take(originalValue, numberToTake)
Возвращает массив или строку. Если это массив, то он содержит указанное числом элементов, считая от начала массива. Если это строка, то она содержит указанное число символов, считая от начала строки.
В Bicep используйте функцию take .
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| originalValue | Да | массив или строка | Массив или строка, из которых берутся элементы. |
| numberToTake | Да | INT | Число элементов или знаков, которые необходимо взять. Если это значение меньше или равно 0, то возвращается пустой массив или строка. Если это значение превышает длину заданного массива или строки, возвращаются все элементы в массиве или строке. |
Возвращаемое значение
Массив или строка.
Пример
Следующий пример принимает указанное количество элементов из массива и символов из строки:
{
"$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'))]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| arrayOutput | Массив | ["one", "two"] |
| stringOutput | Строка | на |
tryGet
tryGet(itemToTest, keyOrIndex)
tryGet помогает избежать сбоев развертывания при попытке получить доступ к несуществующему свойству или индексу в объекте или массиве. Если указанный ключ или индекс не существует, возвращает значение NULL вместо того, tryGet чтобы вызвать ошибку.
В Bicep используйте оператор безопасной расшифровки .
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| itemToTest | Да | массив, объект | Объект или массив для просмотра. |
| keyOrIndex | Да | строка, целое число | Ключ или индекс, извлекаемый из массива или объекта. Имя свойства для объектов или индексов для массивов. |
Возвращаемое значение
Возвращает значение по ключу или индексу, если оно существует. Возвращает значение NULL, если ключ или индекс отсутствуют или отсутствуют границы.
Пример
В следующем примере проверяется, является ли массив, объект и строка пустыми:
{
"$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)]"
}
}
}
Выходные данные из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| регион | Строка | (NULL) |
| имя | Строка | Иван Петров |
| firstColor | Строка | Красный |
tryIndexFromEnd
tryndexFromEnd(sourceArray, reverseIndex)
Функция tryIndexFromEnd является безопасной версией indexFromEnd. Он извлекает значение из массива, подсчитывая назад от конца, не вызывая ошибку, если индекс выходит из диапазона.
В Bicep используйте оператор доступа к зарезервированным индексам и оператор безопасного разыменования .
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| sourceArray | Да | array | Значение для извлечения элемента, подсчитывая обратно от конца. |
| reverseIndex | Да | целое число | Одноуровневый индекс из конца массива. |
Возвращаемое значение
Если индекс действителен (в пределах границ массива), возвращает элемент массива по обратному индексу. Если индекс выходит за пределы диапазона, возвращает значение NULL вместо того, чтобы вызвать ошибку.
Пример
В следующем примере показано, как использовать функцию tryIndexFromEnd :
{
"$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)]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| secondToLast | Строка | апельсин |
В следующем примере показан внеграничный сценарий:
{
"$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)]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| outOfBound | Строка | (null) |
union
union(arg1, arg2, arg3, ...)
Возвращает из параметров один массив или объект со всеми элементами. Для массивов повторяющиеся значения включаются только один раз. Для объектов повторяющиеся имена свойств включаются только один раз.
В Bicep используйте функцию union .
Параметры
| Параметр | Обязательное поле | Type | Описание |
|---|---|---|---|
| Арг1 | Да | массив или объект | Первое значение для объединения элементов. |
| arg2 | Да | массив или объект | Второе значение для объединения элементов. |
| дополнительные аргументы | нет | массив или объект | Дополнительные значения для объединения элементов. |
Возвращаемое значение
Массив или объект.
Замечания
Использует union function последовательность параметров для определения порядка и значений результата.
Для массивов эта функция итеративно просматривает каждый элемент в первом параметре и добавляет в результат те из них, которые в нем еще не присутствуют. Затем она повторяет этот процесс для второго и последующих параметров. Если значение уже включено в результат, сохраняется его прежнее расположение в массиве.
При просмотре объектов к результату добавляются имена и значения свойств из первого параметра. Для последующих параметров к результату добавляются новые имена свойств, если они есть. Если в последующем параметре есть свойство с именем, которое уже встречалось ранее, его значение перезаписывается поверх прежнего. Порядок свойств не гарантируется.
Функция union не только объединяет элементы верхнего уровня, но и рекурсивно объединяет в них все вложенные объекты. Вложенные значения массива не объединяются. См. второй пример в следующем разделе.
Пример
В следующем примере показано, как использовать union массивы и объекты:
{
"$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'))]"
}
}
}
Выходные данные значений по умолчанию из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| objectOutput | Объект | {"one": "a", "two": "b", "три": "c2", "четыре": "d", "пять": "e"} |
| arrayOutput | Массив | ["one", "two", "три", "четыре"] |
В следующем примере показана возможность глубокого слияния:
{
"$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'))]"
}
}
}
Выходные данные из предыдущего примера:
| Имя. | Type | значение |
|---|---|---|
| objectOutput | Объект | {"property":{"one":"a","two":"b","three":"c2","four":"d","пять":"e"},"nestedArray":[3,4]} |
| arrayOutput | Массив | [["один","два"],["три"],["четыре","два"]] |
Если вложенные массивы были объединены, значение objectOutput.nestedArray равно [1, 2, 3, 4], а значение arrayOutput равно [["один", "два", "три"], ["три", "четыре", "два"].
Следующие шаги
- Описание разделов в шаблоне ARM приведено в статье Общие сведения о структуре и синтаксисе шаблонов ARM.