Строковые функции для шаблонов ARM

Resource Manager предоставляет следующие функции для работы со строками в шаблоне Azure Resource Manager (шаблоне ARM):

Совет

Мы рекомендуем использовать Bicep, так как он предоставляет те же возможности, что и шаблоны ARM, и имеет более простой синтаксис. Дополнительные сведения см. в описании функций string.

base64

base64(inputString)

Возвращает входную строку в кодировке Base64.

В Bicep используйте функцию base64.

Параметры

Параметр Обязательное поле Type Описание
inputString Да строка Значение, которое нужно вернуть в кодировке base64.

Возвращаемое значение

Строка, содержащая представление в кодировке base64.

Примеры

Ниже представлен пример использования функции base64.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "stringData": {
      "type": "string",
      "defaultValue": "one, two, three"
    },
    "jsonFormattedData": {
      "type": "string",
      "defaultValue": "{'one': 'a', 'two': 'b'}"
    }
  },
  "variables": {
    "base64String": "[base64(parameters('stringData'))]",
    "base64Object": "[base64(parameters('jsonFormattedData'))]"
  },
  "resources": [
  ],
  "outputs": {
    "base64Output": {
      "type": "string",
      "value": "[variables('base64String')]"
    },
    "toStringOutput": {
      "type": "string",
      "value": "[base64ToString(variables('base64String'))]"
    },
    "toJsonOutput": {
      "type": "object",
      "value": "[base64ToJson(variables('base64Object'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
base64Output Строка b25lLCB0d28sIHRocmVl
toStringOutput Строка one, two, three
toJsonOutput Object {"one": "a", "two": "b"}

base64ToJson

base64ToJson(base64Value)

Преобразует представление в кодировке base64 в объект JSON.

В Bicep используйте функцию base64ToJson.

Параметры

Параметр Обязательное поле Type Описание
base64Value Да строка Представление в кодировке base64, которое необходимо преобразовать в объект JSON.

Возвращаемое значение

Объект JSON.

Примеры

В следующем примере функция base64ToJson используется для преобразования значения в кодировке base64:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "stringData": {
      "type": "string",
      "defaultValue": "one, two, three"
    },
    "jsonFormattedData": {
      "type": "string",
      "defaultValue": "{'one': 'a', 'two': 'b'}"
    }
  },
  "variables": {
    "base64String": "[base64(parameters('stringData'))]",
    "base64Object": "[base64(parameters('jsonFormattedData'))]"
  },
  "resources": [
  ],
  "outputs": {
    "base64Output": {
      "type": "string",
      "value": "[variables('base64String')]"
    },
    "toStringOutput": {
      "type": "string",
      "value": "[base64ToString(variables('base64String'))]"
    },
    "toJsonOutput": {
      "type": "object",
      "value": "[base64ToJson(variables('base64Object'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
base64Output Строка b25lLCB0d28sIHRocmVl
toStringOutput Строка one, two, three
toJsonOutput Object {"one": "a", "two": "b"}

base64ToString

base64ToString(base64Value)

Преобразует представление в кодировке base64 в строку.

В Bicep используйте функцию base64ToString.

Параметры

Параметр Обязательное поле Type Описание
base64Value Да строка Представление в кодировке base64, которое необходимо преобразовать в строку.

Возвращаемое значение

Строка преобразованного значения в кодировке base64.

Примеры

В следующем примере функция base64ToString используется для преобразования значения в кодировке base64:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "stringData": {
      "type": "string",
      "defaultValue": "one, two, three"
    },
    "jsonFormattedData": {
      "type": "string",
      "defaultValue": "{'one': 'a', 'two': 'b'}"
    }
  },
  "variables": {
    "base64String": "[base64(parameters('stringData'))]",
    "base64Object": "[base64(parameters('jsonFormattedData'))]"
  },
  "resources": [
  ],
  "outputs": {
    "base64Output": {
      "type": "string",
      "value": "[variables('base64String')]"
    },
    "toStringOutput": {
      "type": "string",
      "value": "[base64ToString(variables('base64String'))]"
    },
    "toJsonOutput": {
      "type": "object",
      "value": "[base64ToJson(variables('base64Object'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
base64Output Строка b25lLCB0d28sIHRocmVl
toStringOutput Строка one, two, three
toJsonOutput Object {"one": "a", "two": "b"}

concat

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

Объединяет несколько строковых значений и возвращает объединенную строку или объединяет несколько массивов и возвращает объединенный массив.

В Bicep используйте интерполяцию строк вместо concat() функции для улучшения удобочитаемости. Однако в некоторых случаях, например замена строк в многостроковых строках, может потребоваться вернуться к использованию concat() функции или replace() функции.

Параметры

Параметр Обязательное поле Type Описание
arg1 Да строка или массив Первая строка или массив для объединения.
дополнительные аргументы No строка или массив Дополнительные строки или массивы в нужном порядке для объединения.

Эта функция может принимать любое количество аргументов, а также строки или массивы параметров. Однако вы не можете указать для параметров и массивы, и строки. Строки объединяются только с другими строками.

Возвращаемое значение

Строка или массив объединенных значений.

Примеры

В следующем примере показано, как объединить два строковых значения и получить объединенную строку.

{
  "$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))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
concatOutput Строка prefix-5yj4yjf5mbg72

В следующем примере показано, как объединить два массива.

{
  "$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'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
Ввод Массив ["1-1", "1-2", "1-3", "2-1", "2-2", "2-3"]

содержит

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')]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
stringTrue Bool Истина
stringFalse Bool False
objectTrue Bool Истина
objectFalse Bool False
arrayTrue Bool Истина
arrayFalse Bool False

dataUri

dataUri(stringToConvert)

Преобразует значение в универсальный код ресурса (URI) данных.

В Bicep используйте функцию dataUri.

Параметры

Параметр Обязательное поле Type Описание
stringToConvert Да строка Значение, которое необходимо преобразовать в URI данных.

Возвращаемое значение

Строка в формате URI данных.

Примеры

В следующем примере значение преобразуется в URI данных, а URI данных — в строку.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "stringToTest": {
      "type": "string",
      "defaultValue": "Hello"
    },
    "dataFormattedString": {
      "type": "string",
      "defaultValue": "data:;base64,SGVsbG8sIFdvcmxkIQ=="
    }
  },
  "resources": [],
  "outputs": {
    "dataUriOutput": {
      "value": "[dataUri(parameters('stringToTest'))]",
      "type": "string"
    },
    "toStringOutput": {
      "type": "string",
      "value": "[dataUriToString(parameters('dataFormattedString'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
dataUriOutput Строка data:text/plain;charset=utf8;base64,SGVsbG8=
toStringOutput Строка Hello, World!

dataUriToString

dataUriToString(dataUriToConvert)

Преобразует значение в формате URI данных в строку.

В Bicep используйте функцию dataUriToString.

Параметры

Параметр Обязательное поле Type Описание
dataUriToConvert Да строка Значение URI данных, которое необходимо преобразовать.

Возвращаемое значение

Строка, содержащая преобразованное значение.

Примеры

В следующем примере шаблона значение преобразуется в URI данных, а URI данных — в строку.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "stringToTest": {
      "type": "string",
      "defaultValue": "Hello"
    },
    "dataFormattedString": {
      "type": "string",
      "defaultValue": "data:;base64,SGVsbG8sIFdvcmxkIQ=="
    }
  },
  "resources": [],
  "outputs": {
    "dataUriOutput": {
      "value": "[dataUri(parameters('stringToTest'))]",
      "type": "string"
    },
    "toStringOutput": {
      "type": "string",
      "value": "[dataUriToString(parameters('dataFormattedString'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
dataUriOutput Строка data:text/plain;charset=utf8;base64,SGVsbG8=
toStringOutput Строка Hello, World!

empty

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'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
arrayEmpty Bool Истина
objectEmpty Bool Истина
stringEmpty Bool Истина

endsWith

endsWith(stringToSearch, stringToFind)

Определяет, заканчивается ли строка определенным значением. При сравнении учитывается регистр букв.

В Bicep используйте функцию endsWith.

Параметры

Параметр Обязательное поле Type Описание
stringToSearch Да строка Значение, содержащее элемент, который необходимо найти.
stringToFind Да строка Значение, которое необходимо найти.

Возвращаемое значение

True, если последний знак или знаки строки соответствуют значению. В противном случае — False.

Примеры

Следующий пример демонстрирует использование функций startsWith и endsWith:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "startsTrue": {
      "type": "bool",
      "value": "[startsWith('abcdef', 'ab')]"
    },
    "startsCapTrue": {
      "type": "bool",
      "value": "[startsWith('abcdef', 'A')]"
    },
    "startsFalse": {
      "type": "bool",
      "value": "[startsWith('abcdef', 'e')]"
    },
    "endsTrue": {
      "type": "bool",
      "value": "[endsWith('abcdef', 'ef')]"
    },
    "endsCapTrue": {
      "type": "bool",
      "value": "[endsWith('abcdef', 'F')]"
    },
    "endsFalse": {
      "type": "bool",
      "value": "[endsWith('abcdef', 'e')]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
startsTrue Bool Истина
startsCapTrue Bool Истина
startsFalse Bool False
endsTrue Bool Истина
endsCapTrue Bool Истина
endsFalse Bool False

первая

first(arg1)

Возвращает первый знак строки или первый элемент массива. Если задана пустая строка, функция приводит к пустой строке. В случае пустого массива функция возвращается null.

В Bicep используйте функцию first.

Параметры

Параметр Обязательное поле Type Описание
arg1 Да массив или строка Значение, из которого необходимо извлечь первый элемент или знак.

Возвращаемое значение

Строка первого знака или тип (строка, целое число, массив или объект) первого элемента в массиве.

Примеры

В следующем примере показано, как использовать функцию 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')]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
arrayOutput Строка один
stringOutput Строка O

format

format(formatString, arg1, arg2, ...)

Создает форматированную строку на основе входных значений.

В Bicep используйте функцию format.

Параметры

Параметр Обязательное поле Type Описание
formatString Да строка Строка составного форматирования.
arg1 Да строка, целое число или логическое значение Значение, которое должно быть включено в отформатированную строку.
дополнительные аргументы No строка, целое число или логическое значение Дополнительные значения, которые должны быть включены в отформатированную строку.

Замечания

Эта функция используется для форматирования строки в шаблоне. В ней используются те же параметры форматирования, что и в методе System. String. Format в .NET.

Примеры

Ниже представлен пример использования функции format.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "greeting": {
      "type": "string",
      "defaultValue": "Hello"
    },
    "name": {
      "type": "string",
      "defaultValue": "User"
    },
    "numberToFormat": {
      "type": "int",
      "defaultValue": 8175133
    }
  },
  "resources": [
  ],
  "outputs": {
    "formatTest": {
      "type": "string",
      "value": "[format('{0}, {1}. Formatted number: {2:N0}', parameters('greeting'), parameters('name'), parameters('numberToFormat'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
formatTest Строка Hello, User. Formatted number: 8,175,133

guid

guid(baseString, ...)

Создает значение в формате глобального уникального идентификатора на основе значений, указанных как параметры.

В Bicep используйте функцию guid.

Параметры

Параметр Обязательное поле Type Описание
baseString Да строка Значение, используемое в хэш-функции для создания GUID.
дополнительные параметры по мере необходимости Нет строка Можно добавить столько строк, сколько необходимо для создания значения, которое задает уровень уникальности.

Замечания

Эта функция полезна, если нужно создать значение в формате глобального уникального идентификатора. Указываются значения параметров, которые ограничивают область уникальности результата. Можно указать, является ли уникальным имя в подписке, группе ресурсов или развертывании.

Возвращаемое значение — это не случайная строка, а, скорее, результат применения хэш-функции к параметрам. Возвращаемое значение содержит 36 символов. Оно не является глобальным уникальным значением. Чтобы создать глобальный уникальный идентификатор (GUID), который не основан на этом хэш-значении параметров, используйте функцию newGuid.

В следующих примерах показывается, как использовать GUID при создании уникального значения для часто используемых уровней.

Уникальное в пределах подписки.

"[guid(subscription().subscriptionId)]"

Уникальное в пределах группы ресурсов.

"[guid(resourceGroup().id)]"

Уникальное в пределах развертывания для группы ресурсов.

"[guid(resourceGroup().id, deployment().name)]"

Функция guid реализует алгоритм из RFC 4122 §4.3. Исходный источник можно найти в GuidUtility с некоторыми изменениями.

Возвращаемое значение

Строка, содержащая 36 символов, в формате глобального уникального идентификатора.

Примеры

В следующем примере показаны результаты применения функции guid.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {},
  "variables": {},
  "resources": [],
  "outputs": {
    "guidPerSubscription": {
      "type": "string",
      "value": "[guid(subscription().subscriptionId)]"
    },
    "guidPerResourceGroup": {
      "type": "string",
      "value": "[guid(resourceGroup().id)]"
    },
    "guidPerDeployment": {
      "type": "string",
      "value": "[guid(resourceGroup().id, deployment().name)]"
    }
  }
}

indexOf

indexOf(stringToSearch, stringToFind)

Возвращает первую позицию значения в строке. При сравнении учитывается регистр букв.

В Bicep используйте функцию indexOf.

Параметры

Параметр Обязательное поле Type Описание
stringToSearch Да строка Значение, содержащее элемент, который необходимо найти.
stringToFind Да строка Значение, которое необходимо найти.

Возвращаемое значение

Целое число, представляющее позицию искомого элемента. Значение отсчитывается, начиная с нуля. Если элемент не найден, то возвращается значение –1.

Примеры

Следующий пример демонстрирует использование функций indexOf и lastIndexOf:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "firstT": {
      "type": "int",
      "value": "[indexOf('test', 't')]"
    },
    "lastT": {
      "type": "int",
      "value": "[lastIndexOf('test', 't')]"
    },
    "firstString": {
      "type": "int",
      "value": "[indexOf('abcdef', 'CD')]"
    },
    "lastString": {
      "type": "int",
      "value": "[lastIndexOf('abcdef', 'AB')]"
    },
    "notFound": {
      "type": "int",
      "value": "[indexOf('abcdef', 'z')]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
firstT Int 0
lastT Int 3
firstString Int 2
lastString Int 0
notFound Int -1

join

join(inputArray, delimiter)

Объединяет массив строк в одну строку, разделенную разделителем.

В Bicep используйте функцию join.

Параметры

Параметр Обязательное поле Type Описание
inputArray Да Массив строк Массив строк для объединения.
разделитель Да Разделитель для разбиения строки.

Возвращаемое значение

Строка .

Примеры

В следующем примере массив входных строк соединяется со строками, разделенными различными разделителями.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "arrayString": [
      "one",
      "two",
      "three"
    ]
  },
  "resources": [],
  "outputs": {
    "firstOutput": {
      "type": "string",
      "value": "[join(variables('arrayString'), ',')]"
    },
    "secondOutput": {
      "type": "string",
      "value": "[join(variables('arrayString'), ';')]"
    }
  }
}

Выходные данные из предыдущего примера:

Имя. Тип значение
firstOutput Строка "один,два,три"
secondOutput Строка "один;два;три"

json

json(arg1)

Преобразовывает допустимую строку JSON в тип данных JSON. Дополнительные сведения см. в разделе о функции json.

В Bicep используйте функцию json.

последняя

last(arg1)

Возвращает последний знак строки или последний элемент массива.

В Bicep используйте функцию last.

Параметры

Параметр Обязательное поле Type Описание
arg1 Да массив или строка Значение, из которого необходимо извлечь последний элемент или знак.

Возвращаемое значение

Строка последнего знака или тип (строка, целое число, массив или объект) последнего элемента в массиве.

Примеры

В следующем примере показано, как использовать функцию 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')]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
arrayOutput Строка три
stringOutput Строка e

lastIndexOf

lastIndexOf(stringToSearch, stringToFind)

Возвращает последнюю позицию значения в строке. При сравнении учитывается регистр букв.

В Bicep используйте функцию lastIndexOf.

Параметры

Параметр Обязательное поле Type Описание
stringToSearch Да строка Значение, содержащее элемент, который необходимо найти.
stringToFind Да строка Значение, которое необходимо найти.

Возвращаемое значение

Целое число, представляющее последнюю позицию искомого элемента. Значение отсчитывается, начиная с нуля. Если элемент не найден, то возвращается значение –1.

Примеры

Следующий пример демонстрирует использование функций indexOf и lastIndexOf:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "firstT": {
      "type": "int",
      "value": "[indexOf('test', 't')]"
    },
    "lastT": {
      "type": "int",
      "value": "[lastIndexOf('test', 't')]"
    },
    "firstString": {
      "type": "int",
      "value": "[indexOf('abcdef', 'CD')]"
    },
    "lastString": {
      "type": "int",
      "value": "[lastIndexOf('abcdef', 'AB')]"
    },
    "notFound": {
      "type": "int",
      "value": "[indexOf('abcdef', 'z')]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
firstT Int 0
lastT Int 3
firstString Int 2
lastString Int 0
notFound Int -1

length

length(string)

Возвращает число знаков в строке, элементов в массиве или свойств корневого уровня в объекте.

В Bicep используйте функцию length.

Параметры

Параметр Обязательное поле Type Описание
arg1 Да массив, строка или объект Массив, используемый для получения числа элементов, строка, используемая для получения числа символов, или объект, используемый для получения числа свойств корневого уровня.

Возвращаемое значение

Целое число.

Примеры

В следующем примере показано, как использовать функцию 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'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
arrayLength Int 3
stringLength Int 13
objectLength Int 4

newGuid

newGuid()

Возвращает значение в формате глобального уникального идентификатора. Эта функция может использоваться только в значении параметра по умолчанию.

В Bicep используйте функцию newGuid.

Замечания

Эту функцию можно использовать только в выражении для значения параметра по умолчанию. При использовании этой функции где-либо еще в шаблоне возвращается ошибка. Функция не разрешена в других частях шаблона, поскольку она возвращает разные значения при каждом вызове. Развертывание одного и того же шаблона с одинаковыми параметрами, как правило, не будет возвращать одинаковые результаты.

Функция newGuid отличается от функции guid, так как она не принимает никаких параметров. При вызове функции guid с тем же параметром каждый раз возвращается один и тот же идентификатор. Используйте функцию guid, если вам необходимо гарантированно создавать один и тот же идентификатор GUID для конкретного окружения. Используйте функцию newGuid, если каждый раз вам требуется другой идентификатор, например развертывание ресурсов в тестовой среде.

Для создания глобального уникального идентификатора функция newGuid использует структуру GUID на платформе .NET Framework.

Если вы используете повторное развертывание предыдущего успешного развертывания, а предыдущее развертывание включает параметр, использующий функцию newGuid, то этот параметр не будет вычисляться повторно. Вместо этого значение параметра из предыдущего развертывания автоматически используется повторно в развертывании отката.

В тестовой среде может потребоваться многократное развертывание ресурсов, которые активны только в течение короткого времени. Вместо конструирования уникальных имен для их создания можно использовать функцию newGuid с функцией uniqueString.

Будьте внимательны при повторном развертывании шаблона, который использует функцию newGuid для значения по умолчанию. При повторном развертывании без ввода значения параметра функция вычисляется повторно. Если нужно обновить существующий ресурс, а не создать новый, следует передать значение параметра из предыдущего развертывания.

Возвращаемое значение

Строка, содержащая 36 символов, в формате глобального уникального идентификатора.

Примеры

В следующем примере показан параметр с новым идентификатором.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "guidValue": {
      "type": "string",
      "defaultValue": "[newGuid()]"
    }
  },
  "resources": [
  ],
  "outputs": {
    "guidOutput": {
      "type": "string",
      "value": "[parameters('guidValue')]"
    }
  }
}

Выходные данные из предыдущего примера различаются для каждого развертывания, но будут выглядеть примерно так:

Имя. Тип значение
guidOutput строка b76a51fc-bd72-4a77-b9a2-3c29e7d2e551

В следующем примере функция newGuid используется для создания уникального имени учетной записи хранения. Этот шаблон может работать для тестовой среды, где учетная запись хранения существует в течение непродолжительного времени и не развертывается повторно.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "guidValue": {
      "type": "string",
      "defaultValue": "[newGuid()]"
    }
  },
  "variables": {
    "storageName": "[concat('storage', uniqueString(parameters('guidValue')))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-04-01",
      "name": "[variables('storageName')]",
      "location": "West US",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {}
    }
  ],
  "outputs": {
    "nameOutput": {
      "type": "string",
      "value": "[variables('storageName')]"
    }
  }
}

Выходные данные из предыдущего примера различаются для каждого развертывания, но будут выглядеть примерно так:

Имя. Тип значение
nameOutput строка storagenziwvyru7uxie

padLeft

padLeft(valueToPad, totalLength, paddingCharacter)

Возвращает выровненную по правому краю строку, добавляя символы в левую часть до достижения общее указанной длины.

В Bicep используйте функцию padLeft.

Параметры

Параметр Обязательное поле Type Описание
значение_для_заполнения Да строка или целое число Значение, выравниваемое по правому краю.
общая_длина Да INT Общее число символов в возвращаемой строке.
символ_заполнения No один знак Символ, используемый для заполнения левой части до достижения общей длины. Значение по умолчанию — пробел.

Если длина исходной строки превышает число знаков для заполнения, то знаки не добавляются.

Возвращаемое значение

Строка, содержащая по крайней мере число указанных знаков.

Примеры

В следующем примере показано, как заполнить указанное пользователем значение параметра, добавляя знак нуля до достижения общего числа знаков.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testString": {
      "type": "string",
      "defaultValue": "123"
    }
  },
  "resources": [],
  "outputs": {
    "stringOutput": {
      "type": "string",
      "value": "[padLeft(parameters('testString'),10,'0')]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
stringOutput Строка 0000000123

replace

replace(originalString, oldString, newString)

Возвращает новую строку, в которой все экземпляры одной строки заменены другой строкой.

В Bicep используйте функцию replace.

Параметры

Параметр Обязательное поле Type Описание
исходная_строка Да строка Значение, в котором все экземпляры одной строки заменены другой строкой.
oldString Да строка Строка, которая удаляется из исходной строки.
newString Да строка Строка, добавляемая вместо удаляемой строки.

Возвращаемое значение

Строка с замененными знаками.

Примеры

В приведенном ниже примере показано, как удалить все тире из предоставленной пользователем строки и как заменить часть строки другой строкой.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testString": {
      "type": "string",
      "defaultValue": "123-123-1234"
    }
  },
  "resources": [],
  "outputs": {
    "firstOutput": {
      "type": "string",
      "value": "[replace(parameters('testString'),'-', '')]"
    },
    "secondOutput": {
      "type": "string",
      "value": "[replace(parameters('testString'),'1234', 'xxxx')]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
firstOutput Строка 1231231234
secondOutput Строка 123-123-xxxx

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'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
arrayOutput Массив ["three"]
stringOutput Строка two three

split

split(inputString, delimiter)

Возвращает массив строк, содержащий подстроки входной строки, разделенные переданными разделителями.

В Bicep используйте функцию split.

Параметры

Параметр Обязательное поле Type Описание
inputString Да строка Строка для разделения.
разделитель Да строка или массив строк Разделитель для разбиения строки.

Возвращаемое значение

Массив строк.

Примеры

В следующем примере входная строка разбивается по символам запятой или точки с запятой.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstString": {
      "type": "string",
      "defaultValue": "one,two,three"
    },
    "secondString": {
      "type": "string",
      "defaultValue": "one;two,three"
    }
  },
  "variables": {
    "delimiters": [ ",", ";" ]
  },
  "resources": [],
  "outputs": {
    "firstOutput": {
      "type": "array",
      "value": "[split(parameters('firstString'),',')]"
    },
    "secondOutput": {
      "type": "array",
      "value": "[split(parameters('secondString'),variables('delimiters'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
firstOutput Массив ["one", "two", "three"]
secondOutput Массив ["one", "two", "three"]

startsWith

startsWith(stringToSearch, stringToFind)

Определяет, начинается ли строка с определенного значения. При сравнении учитывается регистр букв.

В Bicep используйте функцию startsWith.

Параметры

Параметр Обязательное поле Type Описание
stringToSearch Да строка Значение, содержащее элемент, который необходимо найти.
stringToFind Да строка Значение, которое необходимо найти.

Возвращаемое значение

True, если первый знак или знаки строки соответствуют значению. В противном случае — False.

Примеры

Следующий пример демонстрирует использование функций startsWith и endsWith:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "startsTrue": {
      "type": "bool",
      "value": "[startsWith('abcdef', 'ab')]"
    },
    "startsCapTrue": {
      "type": "bool",
      "value": "[startsWith('abcdef', 'A')]"
    },
    "startsFalse": {
      "type": "bool",
      "value": "[startsWith('abcdef', 'e')]"
    },
    "endsTrue": {
      "type": "bool",
      "value": "[endsWith('abcdef', 'ef')]"
    },
    "endsCapTrue": {
      "type": "bool",
      "value": "[endsWith('abcdef', 'F')]"
    },
    "endsFalse": {
      "type": "bool",
      "value": "[endsWith('abcdef', 'e')]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
startsTrue Bool Истина
startsCapTrue Bool Истина
startsFalse Bool False
endsTrue Bool Истина
endsCapTrue Bool Истина
endsFalse Bool False

строка

string(valueToConvert)

Преобразует указанное значение в строку.

В Bicep используйте функцию string.

Параметры

Параметр Обязательное поле Type Описание
valueToConvert Да Любое Значение, которое необходимо преобразовать в строку. Можно преобразовать любой тип значения, включая объекты и массивы.

Возвращаемое значение

Строка преобразованного значения.

Примеры

В следующем примере показано, как преобразовать различные типы значений в строковые.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testObject": {
      "type": "object",
      "defaultValue": {
        "valueA": 10,
        "valueB": "Example Text"
      }
    },
    "testArray": {
      "type": "array",
      "defaultValue": [
        "a",
        "b",
        "c"
      ]
    },
    "testInt": {
      "type": "int",
      "defaultValue": 5
    }
  },
  "resources": [],
  "outputs": {
    "objectOutput": {
      "type": "string",
      "value": "[string(parameters('testObject'))]"
    },
    "arrayOutput": {
      "type": "string",
      "value": "[string(parameters('testArray'))]"
    },
    "intOutput": {
      "type": "string",
      "value": "[string(parameters('testInt'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
objectOutput Строка {"valueA":10,"valueB":"Example Text"}
arrayOutput Строка ["a","b","c"]
intOutput Строка 5

substring

substring(stringToParse, startIndex, length)

Возвращает подстроку, которая начинается с указанной позиции и содержит указанное количество символов.

В Bicep используйте функцию substring.

Параметры

Параметр Обязательное поле Type Описание
stringToParse Да строка Исходная строка, из которой извлекается подстрока.
startIndex No INT Отсчитываемая от нуля позиция первого знака для подстроки.
length No INT Число символов в подстроке. Этот параметр должен ссылаться на позицию в строке. Значение этого параметра должно быть равным нулю или больше него. Если этот параметр опущен, возвращается весь остаток строки от начальной позиции.

Возвращаемое значение

Подстрока. Также может принимать значение пустой строки, когда длина равна нулю.

Замечания

Если substring выходит за пределы строки или когда длина меньше нуля, происходит ошибка выполнения функции. Следующий пример завершается ошибкой "Параметры индекса и длины должны относиться к расположению в строке. Параметр индекса: 0, параметр длины: 11, параметр длины строкового параметра: 10".

"parameters": {
  "inputString": {
    "type": "string",
    "value": "1234567890"
  }
}, "variables": {
  "prefix": "[substring(parameters('inputString'), 0, 11)]"
}

Примеры

В следующем примере из параметра извлекается подстрока.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testString": {
      "type": "string",
      "defaultValue": "one two three"
    }
  },
  "resources": [],
  "outputs": {
    "substringOutput": {
      "type": "string",
      "value": "[substring(parameters('testString'), 4, 3)]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
substringOutput Строка two

take

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'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
arrayOutput Массив ["one", "two"]
stringOutput Строка on

toLower

toLower(stringToChange)

Преобразует указанную строку в нижний регистр.

В Bicep используйте функцию toLower.

Параметры

Параметр Обязательное поле Type Описание
изменяемая_строка Да строка Значение, преобразовываемое в нижний регистр.

Возвращаемое значение

Возвращает строку, преобразованную в нижний регистр.

Примеры

В следующем примере значение параметра преобразуется в нижний регистр и в верхний регистр.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testString": {
      "type": "string",
      "defaultValue": "One Two Three"
    }
  },
  "resources": [],
  "outputs": {
    "toLowerOutput": {
      "type": "string",
      "value": "[toLower(parameters('testString'))]"
    },
    "toUpperOutput": {
      "type": "string",
      "value": "[toUpper(parameters('testString'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
toLowerOutput Строка one two three
toUpperOutput Строка ONE TWO THREE

toUpper

toUpper(stringToChange)

Преобразует указанную строку в верхний регистр.

В Bicep используйте функцию toUpper.

Параметры

Параметр Обязательное поле Type Описание
изменяемая_строка Да строка Значение, преобразовываемое в верхний регистр.

Возвращаемое значение

Возвращает строку, преобразованную в верхний регистр.

Примеры

В следующем примере значение параметра преобразуется в нижний регистр и в верхний регистр.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testString": {
      "type": "string",
      "defaultValue": "One Two Three"
    }
  },
  "resources": [],
  "outputs": {
    "toLowerOutput": {
      "type": "string",
      "value": "[toLower(parameters('testString'))]"
    },
    "toUpperOutput": {
      "type": "string",
      "value": "[toUpper(parameters('testString'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
toLowerOutput Строка one two three
toUpperOutput Строка ONE TWO THREE

trim

trim(stringToTrim)

Удаляет все начальные и конечные знаки пробела из указанной строки.

В Bicep используйте функцию trim.

Параметры

Параметр Обязательное поле Type Описание
stringToTrim Да строка Обрезаемое значение.

Возвращаемое значение

Строка без пробелов в начале и в конце.

Примеры

В следующем примере из параметра удаляются пробелы.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testString": {
      "type": "string",
      "defaultValue": "    one two three   "
    }
  },
  "resources": [],
  "outputs": {
    "return": {
      "type": "string",
      "value": "[trim(parameters('testString'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
Ввод Строка one two three

uniqueString

uniqueString(baseString, ...)

Создает детерминированную хэш-строку на основании значений, указанных как параметры.

В Bicep используйте функцию uniqueString.

Параметры

Параметр Обязательное поле Type Описание
baseString Да строка Значение, используемое в хэш-функции для создания уникальной строки.
дополнительные параметры по мере необходимости Нет строка Можно добавить столько строк, сколько необходимо для создания значения, которое задает уровень уникальности.

Замечания

Эта функция полезна в тех случаях, когда необходимо создать уникальное имя ресурса. Указываются значения параметров, которые ограничивают область уникальности результата. Можно указать, является ли уникальным имя в подписке, группе ресурсов или развертывании.

Возвращаемое значение не случайная строка, а, скорее, результат применения хэш-функции. Возвращаемое значение содержит 13 знаков. Оно не является глобальным уникальным значением. Вы можете добавить к значению префикс из своего соглашения об именовании, чтобы создать значимое имя. В следующем примере показан формат возвращаемого значения. Фактическое значение зависит от указанных параметров.

tcvhiyu5h2o5o

В следующих примерах показано, как с помощью функции uniqueString создать уникальное значение для часто используемых уровней.

Уникальное в пределах подписки.

"[uniqueString(subscription().subscriptionId)]"

Уникальное в пределах группы ресурсов.

"[uniqueString(resourceGroup().id)]"

Уникальное в пределах развертывания для группы ресурсов.

"[uniqueString(resourceGroup().id, deployment().name)]"

В следующем примере показано, как создать уникальное имя учетной записи хранения на основе вашей группы ресурсов. Внутри группы ресурсов имена не будут уникальными, если создавать их таким способом.

"resources": [{
  "name": "[concat('storage', uniqueString(resourceGroup().id))]",
  "type": "Microsoft.Storage/storageAccounts",
  ...

Если каждый раз при развертывании шаблона необходимо создать новое уникальное имя и при этом не обновлять ресурс, можно использовать функцию utcNow с функцией uniqueString. Этот подход можно использовать в тестовой среде. Пример см. в разделе о функции utcNow.

Возвращаемое значение

Строка, содержащая 13 символов.

Примеры

В следующем примере показаны результаты применения функции uniquestring.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "uniqueRG": {
      "type": "string",
      "value": "[uniqueString(resourceGroup().id)]"
    },
    "uniqueDeploy": {
      "type": "string",
      "value": "[uniqueString(resourceGroup().id, deployment().name)]"
    }
  }
}

uri

uri(baseUri, relativeUri)

Создает абсолютный URI, объединяя строки baseUri и relativeUri.

В Bicep используйте функцию uri.

Параметры

Параметр Обязательное поле Type Описание
baseUri Да строка Строка базового универсального кода ресурса (URI). Следите за правилами обработки замыкающей косой черты (/), которые описаны ниже в этой таблице.
relativeUri Да строка Строка относительного универсального кода ресурса (URI), добавляемая к строке базового универсального кода ресурса (URI).
  • Если параметр baseUri заканчивается косой чертой, в качестве результата возвращается параметр baseUri, за которым следует параметр relativeUri.

  • Если параметр baseUri не заканчивается косой чертой, происходит одно из двух действий.

    • Если параметр baseUri вообще не имеет косых черт (помимо // впереди), в качестве результата возвращается параметр baseUri, за которым следует параметр relativeUri.

    • Если параметр baseUri имеет несколько косых черт, но не заканчивается ими, всё, начиная с последней косой черты, удаляется из параметра baseUri, а результатом является параметр baseUri, за которым следует параметр relativeUri.

Далее приводятся некоторые примеры.

uri('http://contoso.org/firstpath', 'myscript.sh') -> http://contoso.org/myscript.sh
uri('http://contoso.org/firstpath/', 'myscript.sh') -> http://contoso.org/firstpath/myscript.sh
uri('http://contoso.org/firstpath/azuredeploy.json', 'myscript.sh') -> http://contoso.org/firstpath/myscript.sh
uri('http://contoso.org/firstpath/azuredeploy.json/', 'myscript.sh') -> http://contoso.org/firstpath/azuredeploy.json/myscript.sh

Полно описание того, как разрешаются параметры baseUri и relativeUri, можно найти в разделе 5 стандарта RFC 3986.

Возвращаемое значение

Строка, представляющая абсолютный URI для базового и относительного значений.

Примеры

В следующем примере показано создание ссылки на вложенный шаблон в зависимости от значения параметра родительского шаблона.

"templateLink": "[uri(deployment().properties.templateLink.uri, 'nested/azuredeploy.json')]"

В следующем примере шаблона показано, как использовать функции uri, uriComponent и uriComponentToString.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "uriFormat": "[uri('http://contoso.com/resources/', 'nested/azuredeploy.json')]",
    "uriEncoded": "[uriComponent(variables('uriFormat'))]"
  },
  "resources": [
  ],
  "outputs": {
    "uriOutput": {
      "type": "string",
      "value": "[variables('uriFormat')]"
    },
    "componentOutput": {
      "type": "string",
      "value": "[variables('uriEncoded')]"
    },
    "toStringOutput": {
      "type": "string",
      "value": "[uriComponentToString(variables('uriEncoded'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
uriOutput Строка http://contoso.com/resources/nested/azuredeploy.json
componentOutput Строка http%3A%2F%2Fcontoso.com%2Fresources%2Fnested%2Fazuredeploy.json
toStringOutput Строка http://contoso.com/resources/nested/azuredeploy.json

uriComponent

uricomponent(stringToEncode)

Кодирует URI.

В Bicep используйте функцию uriComponent.

Параметры

Параметр Обязательное поле Type Описание
stringToEncode Да строка Значение для кодирования.

Возвращаемое значение

Строка со значением, закодированным в формате URI.

Примеры

В следующем примере шаблона показано, как использовать функции uri, uriComponent и uriComponentToString.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "uriFormat": "[uri('http://contoso.com/resources/', 'nested/azuredeploy.json')]",
    "uriEncoded": "[uriComponent(variables('uriFormat'))]"
  },
  "resources": [
  ],
  "outputs": {
    "uriOutput": {
      "type": "string",
      "value": "[variables('uriFormat')]"
    },
    "componentOutput": {
      "type": "string",
      "value": "[variables('uriEncoded')]"
    },
    "toStringOutput": {
      "type": "string",
      "value": "[uriComponentToString(variables('uriEncoded'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
uriOutput Строка http://contoso.com/resources/nested/azuredeploy.json
componentOutput Строка http%3A%2F%2Fcontoso.com%2Fresources%2Fnested%2Fazuredeploy.json
toStringOutput Строка http://contoso.com/resources/nested/azuredeploy.json

uriComponentToString

uriComponentToString(uriEncodedString)

Возвращает строку со значением, закодированным в формате URI.

В Bicep используйте функцию uriComponentToString.

Параметры

Параметр Обязательное поле Type Описание
uriEncodedString Да строка Значение, закодированное в формате URI, которое необходимо преобразовать в строку.

Возвращаемое значение

Декодированная строка со значением, закодированным в формате URI.

Примеры

В следующем примере показано, как использовать uri, uriComponent и uriComponentToString.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "variables": {
    "uriFormat": "[uri('http://contoso.com/resources/', 'nested/azuredeploy.json')]",
    "uriEncoded": "[uriComponent(variables('uriFormat'))]"
  },
  "resources": [
  ],
  "outputs": {
    "uriOutput": {
      "type": "string",
      "value": "[variables('uriFormat')]"
    },
    "componentOutput": {
      "type": "string",
      "value": "[variables('uriEncoded')]"
    },
    "toStringOutput": {
      "type": "string",
      "value": "[uriComponentToString(variables('uriEncoded'))]"
    }
  }
}

Выходные данные из предыдущего примера со значениями по умолчанию:

Имя. Тип значение
uriOutput Строка http://contoso.com/resources/nested/azuredeploy.json
componentOutput Строка http%3A%2F%2Fcontoso.com%2Fresources%2Fnested%2Fazuredeploy.json
toStringOutput Строка http://contoso.com/resources/nested/azuredeploy.json

Следующие шаги