Функции для работы со строками в Bicep
В этой статье описаны функции Bicep для работы со строками.
base64(inputString)
Возвращает входную строку в кодировке Base64.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
inputString | Да | строка | Значение, которое нужно вернуть в кодировке base64. |
Строка, содержащая представление в кодировке base64.
В следующем примере показано, как использовать функцию base64.
param stringData string = 'one, two, three'
param jsonFormattedData string = '{\'one\': \'a\', \'two\': \'b\'}'
var base64String = base64(stringData)
var base64Object = base64(jsonFormattedData)
output base64Output string = base64String
output toStringOutput string = base64ToString(base64String)
output toJsonOutput object = base64ToJson(base64Object)
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
base64Output | Строка | b25lLCB0d28sIHRocmVl |
toStringOutput | Строка | one, two, three |
toJsonOutput | Object | {"one": "a", "two": "b"} |
base64ToJson(base64Value)
Преобразует представление в кодировке base64 в объект JSON.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
base64Value | Да | строка | Представление в кодировке base64, которое необходимо преобразовать в объект JSON. |
Объект JSON.
В следующем примере функция base64ToJson используется для преобразования значения в кодировке base64:
param stringData string = 'one, two, three'
param jsonFormattedData string = '{\'one\': \'a\', \'two\': \'b\'}'
var base64String = base64(stringData)
var base64Object = base64(jsonFormattedData)
output base64Output string = base64String
output toStringOutput string = base64ToString(base64String)
output toJsonOutput object = base64ToJson(base64Object)
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
base64Output | Строка | b25lLCB0d28sIHRocmVl |
toStringOutput | Строка | one, two, three |
toJsonOutput | Object | {"one": "a", "two": "b"} |
base64ToString(base64Value)
Преобразует представление в кодировке base64 в строку.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
base64Value | Да | строка | Представление в кодировке base64, которое необходимо преобразовать в строку. |
Строка преобразованного значения в кодировке base64.
В следующем примере функция base64ToString используется для преобразования значения в кодировке base64:
param stringData string = 'one, two, three'
param jsonFormattedData string = '{\'one\': \'a\', \'two\': \'b\'}'
var base64String = base64(stringData)
var base64Object = base64(jsonFormattedData)
output base64Output string = base64String
output toStringOutput string = base64ToString(base64String)
output toJsonOutput object = base64ToJson(base64Object)
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
base64Output | Строка | b25lLCB0d28sIHRocmVl |
toStringOutput | Строка | one, two, three |
toJsonOutput | Object | {"one": "a", "two": "b"} |
concat(arg1, arg2, arg3, ...)
Объединяет несколько строковых значений и возвращает объединенную строку или объединяет несколько массивов и возвращает объединенный массив. Чтобы улучшить удобочитаемость, используйте интерполяцию строк вместо concat()
функции. Однако в некоторых случаях, например замена строк в многостроковых строках, может потребоваться вернуться к использованию concat()
функции или replace()
функции.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
arg1 | Да | строка или массив | Первая строка или массив для объединения. |
дополнительные аргументы | No | строка или массив | Дополнительные строки или массивы в нужном порядке для объединения. |
Эта функция может принимать любое количество аргументов, а также строки или массивы параметров. Однако вы не можете указать для параметров и массивы, и строки. Строки объединяются только с другими строками.
Строка или массив объединенных значений.
В следующем примере показано сравнение между интерполяцией и использованием concat()
функции. Два выходных данных возвращают одно и то же значение.
param prefix string = 'prefix'
output concatOutput string = concat(prefix, 'And', uniqueString(resourceGroup().id))
output interpolationOutput string = '${prefix}And${uniqueString(resourceGroup().id)}'
Выходные данные из предыдущего примера со значением по умолчанию:
Имя. | Тип | значение |
---|---|---|
concatOutput | Строка | prefixAnd5yj4yjf5mbg72 |
интерполяцияOutput | Строка | prefixAnd5yj4yjf5mbg72 |
Сейчас интерполяция не поддерживается в мультиломаных. В следующем примере показано сравнение между интерполяцией и использованием concat()
функции.
var blocked = 'BLOCKED'
output concatOutput string = concat('''interpolation
is ''', blocked)
output interpolationOutput string = '''interpolation
is ${blocked}'''
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
concatOutput | Строка | интерполяция\nis BLOCKED |
интерполяцияOutput | Строка | интерполяция\nis ${заблокирован} |
contains(container, itemToFind)
Проверяет, содержит ли массив значение, содержит ли объект ключ или содержит ли строка подстроку. При сравнении строк учитывается регистр. Тем не менее при проверке объекта на наличие ключа сравнение выполняется без учета регистра.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
контейнер | Да | массив, объект или строка | Значение, содержащее значение, которое необходимо найти. |
itemToFind | Да | строка или целое число | Значение, которое необходимо найти. |
True
Значение Falseв противном случае .
В следующем примере показано, как использовать функцию contains с различными типами:
param stringToTest string = 'OneTwoThree'
param objectToTest object = {
one: 'a'
two: 'b'
three: 'c'
}
param arrayToTest array = [
'one'
'two'
'three'
]
output stringTrue bool = contains(stringToTest, 'e')
output stringFalse bool = contains(stringToTest, 'z')
output objectTrue bool = contains(objectToTest, 'one')
output objectFalse bool = contains(objectToTest, 'a')
output arrayTrue bool = contains(arrayToTest, 'three')
output arrayFalse bool = contains(arrayToTest, 'four')
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
stringTrue | Bool | Истина |
stringFalse | Bool | False |
objectTrue | Bool | Истина |
objectFalse | Bool | False |
arrayTrue | Bool | Истина |
arrayFalse | Bool | False |
dataUri(stringToConvert)
Преобразует значение в универсальный код ресурса (URI) данных.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
stringToConvert | Да | строка | Значение, которое необходимо преобразовать в URI данных. |
Строка в формате URI данных.
В следующем примере значение преобразуется в URI данных, а URI данных преобразуется в строку:
param stringToTest string = 'Hello'
param dataFormattedString string = 'data:;base64,SGVsbG8sIFdvcmxkIQ=='
output dataUriOutput string = dataUri(stringToTest)
output toStringOutput string = dataUriToString(dataFormattedString)
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
dataUriOutput | Строка | data:text/plain;charset=utf8;base64,SGVsbG8= |
toStringOutput | Строка | Hello, World! |
dataUriToString(dataUriToConvert)
Преобразует значение в формате URI данных в строку.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
dataUriToConvert | Да | строка | Значение URI данных, которое необходимо преобразовать. |
Строка, содержащая преобразованное значение.
В следующем примере значение преобразуется в URI данных, а URI данных преобразуется в строку:
param stringToTest string = 'Hello'
param dataFormattedString string = 'data:;base64,SGVsbG8sIFdvcmxkIQ=='
output dataUriOutput string = dataUri(stringToTest)
output toStringOutput string = dataUriToString(dataFormattedString)
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
dataUriOutput | Строка | data:text/plain;charset=utf8;base64,SGVsbG8= |
toStringOutput | Строка | Hello, World! |
empty(itemToTest)
Определяет, является ли массив, объект или строка пустым или пустым.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
itemToTest | Да | массив, объект или строка | Значение, которое необходимо проверить, является ли он пустым или null. |
Возвращает значение True , если значение пустое или null; в противном случае — false.
В следующем примере проверяется, являются ли пустыми массив, объект и строка.
param testArray array = []
param testObject object = {}
param testString string = ''
param testNullString string?
output arrayEmpty bool = empty(testArray)
output objectEmpty bool = empty(testObject)
output stringEmpty bool = empty(testString)
output stringNull bool = empty(testNullString)
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
arrayEmpty | Bool | Истина |
objectEmpty | Bool | Истина |
stringEmpty | Bool | Истина |
stringNull | Bool | Истина |
endsWith(stringToSearch, stringToFind)
Определяет, заканчивается ли строка определенным значением. При сравнении учитывается регистр букв.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
stringToSearch | Да | строка | Значение, содержащее элемент, который необходимо найти. |
stringToFind | Да | строка | Значение, которое необходимо найти. |
True
Значение, если последний символ или символы строки соответствуют значению; False
в противном случае .
В следующем примере показано, как использовать функции startsWith и endsWith:
output startsTrue bool = startsWith('abcdef', 'ab')
output startsCapTrue bool = startsWith('abcdef', 'A')
output startsFalse bool = startsWith('abcdef', 'e')
output endsTrue bool = endsWith('abcdef', 'ef')
output endsCapTrue bool = endsWith('abcdef', 'F')
output endsFalse bool = endsWith('abcdef', 'e')
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
startsTrue | Bool | Истина |
startsCapTrue | Bool | Истина |
startsFalse | Bool | False |
endsTrue | Bool | Истина |
endsCapTrue | Bool | Истина |
endsFalse | Bool | False |
first(arg1)
Возвращает первый знак строки или первый элемент массива. Если задана пустая строка, функция приводит к пустой строке. В случае пустого массива функция возвращается null
.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
arg1 | Да | массив или строка | Значение, из которого необходимо извлечь первый элемент или знак. |
Строка первого знака или тип (строка, целое число, массив или объект) первого элемента в массиве.
В следующем примере показано, как использовать функцию first с массивом и строкой:
param arrayToTest array = [
'one'
'two'
'three'
]
output arrayOutput string = first(arrayToTest)
output stringOutput string = first('One Two Three')
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
arrayOutput | Строка | один |
stringOutput | Строка | O |
format(formatString, arg1, arg2, ...)
Создает форматированную строку на основе входных значений.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
formatString | Да | строка | Строка составного форматирования. |
arg1 | Да | строка, целое число или логическое значение | Значение, которое должно быть включено в отформатированную строку. |
дополнительные аргументы | No | строка, целое число или логическое значение | Дополнительные значения, которые должны быть включены в отформатированную строку. |
Эта функция используется для форматирования строки в файле Bicep. В ней используются те же параметры форматирования, что и в методе System. String. Format в .NET.
Ниже представлен пример использования функции format.
param greeting string = 'Hello'
param name string = 'User'
param numberToFormat int = 8175133
param objectToFormat object = { prop: 'value' }
output formatTest string = format('{0}, {1}. Formatted number: {2:N0}', greeting, name, numberToFormat)
output formatObject string = format('objectToFormat: {0}', objectToFormat)
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
formatTest | Строка | Hello, User. Formatted number: 8,175,133 |
formatObject | Строка | objectToFormat: {'prop':'value'} |
guid(baseString, ...)
Создает значение в формате глобального уникального идентификатора на основе значений, указанных как параметры.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
baseString | Да | строка | Значение, используемое в хэш-функции для создания GUID. |
Дополнительные параметры (если необходимы) | Нет | строка | Можно добавить столько строк, сколько необходимо для создания значения, которое задает уровень уникальности. |
Эта функция полезна, если нужно создать значение в формате глобального уникального идентификатора. Указываются значения параметров, которые ограничивают область уникальности результата. Можно указать, является ли уникальным имя в подписке, группе ресурсов или развертывании.
Возвращаемое значение — это не случайная строка, а, скорее, результат применения хэш-функции к параметрам. Возвращаемое значение содержит 36 символов. Оно не является глобальным уникальным значением. Чтобы создать глобальный уникальный идентификатор (GUID), который не основан на этом хэш-значении параметров, используйте функцию newGuid.
Примечание
Порядок параметров влияет на возвращаемое значение. Например:
guid('hello', 'world')
и guid('world', 'hello')
.
возвращают не одно и то же значение.
В следующих примерах показывается, как использовать GUID при создании уникального значения для часто используемых уровней.
Уникальное в пределах подписки.
guid(subscription().subscriptionId)
Уникальное в пределах группы ресурсов.
guid(resourceGroup().id)
Уникальное в пределах развертывания для группы ресурсов.
guid(resourceGroup().id, deployment().name)
Функция guid
реализует алгоритм из RFC 4122 §4.3. Исходный источник можно найти в GuidUtility с некоторыми изменениями. В реализации namespaceId
функции задано 11fb06fb-712d-4ddd-98c7-e71bbd588830
значение , а version
для нее guid()
задано значение 5
. Значение создается путем преобразования каждого параметра guid()
функции в строку и объединения их с -
разделителями.
Строка, содержащая 36 символов, в формате глобального уникального идентификатора.
В следующем примере возвращаются результаты из guid.
output guidPerSubscription string = guid(subscription().subscriptionId)
output guidPerResourceGroup string = guid(resourceGroup().id)
output guidPerDeployment string = guid(resourceGroup().id, deployment().name)
indexOf(stringToSearch, stringToFind)
Возвращает первую позицию значения в строке. При сравнении учитывается регистр букв.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
stringToSearch | Да | строка | Значение, содержащее элемент, который необходимо найти. |
stringToFind | Да | строка | Значение, которое необходимо найти. |
Целое число, представляющее позицию искомого элемента. Значение отсчитывается, начиная с нуля. Если элемент не найден, то возвращается значение –1.
В следующем примере показано, как использовать функции indexOf и lastIndexOf:
output firstT int = indexOf('test', 't')
output lastT int = lastIndexOf('test', 't')
output firstString int = indexOf('abcdef', 'CD')
output lastString int = lastIndexOf('abcdef', 'AB')
output notFound int = indexOf('abcdef', 'z')
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
firstT | Int | 0 |
lastT | Int | 3 |
firstString | Int | 2 |
lastString | Int | 0 |
notFound | Int | -1 |
join(inputArray, delimiter)
Объединяет массив строк в одну строку, разделенную разделителем.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
inputArray | Да | Массив строк. | Массив строк для объединения. |
разделитель | Да | Разделитель для разбиения строки. |
Строка .
В следующем примере массив входных строк соединяется со строками, разделенными запятой или точкой с запятой.
var arrayString = [
'one'
'two'
'three'
]
output firstOutput string = join(arrayString, ',')
output secondOutput string = join(arrayString, ';')
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
firstOutput | Строка | "один,два,три" |
secondOutput | Строка | "один;два;три" |
Для этой функции требуется интерфейс командной строки Bicep версии 0.8.X или более поздней.
json(arg1)
Преобразовывает допустимую строку JSON в тип данных JSON. Дополнительные сведения см. в разделе о функции json.
Пространство имен: sys.
last(arg1)
Возвращает последний знак строки или последний элемент массива.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
arg1 | Да | массив или строка | Значение, из которого необходимо извлечь последний элемент или знак. |
Строка последнего знака или тип (строка, целое число, массив или объект) последнего элемента в массиве.
В следующем примере показано, как использовать функцию last с массивом и строкой:
param arrayToTest array = [
'one'
'two'
'three'
]
output arrayOutput string = last(arrayToTest)
output stringOutput string = last('One Two Three')
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
arrayOutput | Строка | три |
stringOutput | Строка | e |
lastIndexOf(stringToSearch, stringToFind)
Возвращает последнюю позицию значения в строке. При сравнении учитывается регистр букв.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
stringToSearch | Да | строка | Значение, содержащее элемент, который необходимо найти. |
stringToFind | Да | строка | Значение, которое необходимо найти. |
Целое число, представляющее последнюю позицию искомого элемента. Значение отсчитывается, начиная с нуля. Если элемент не найден, то возвращается значение –1.
Следующий пример демонстрирует использование функций indexOf
и lastIndexOf
:
output firstT int = indexOf('test', 't')
output lastT int = lastIndexOf('test', 't')
output firstString int = indexOf('abcdef', 'CD')
output lastString int = lastIndexOf('abcdef', 'AB')
output notFound int = indexOf('abcdef', 'z')
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
firstT | Int | 0 |
lastT | Int | 3 |
firstString | Int | 2 |
lastString | Int | 0 |
notFound | Int | -1 |
length(string)
Возвращает число знаков в строке, элементов в массиве или свойств корневого уровня в объекте.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
arg1 | Да | массив, строка или объект | Массив, используемый для получения числа элементов, строка, используемая для получения числа символов, или объект, используемый для получения числа свойств корневого уровня. |
Целое число.
В следующем примере показано, как использовать функцию length с массивом и строкой:
param arrayToTest array = [
'one'
'two'
'three'
]
param stringToTest string = 'One Two Three'
param objectToTest object = {
propA: 'one'
propB: 'two'
propC: 'three'
propD: {
'propD-1': 'sub'
'propD-2': 'sub'
}
}
output arrayLength int = length(arrayToTest)
output stringLength int = length(stringToTest)
output objectLength int = length(objectToTest)
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
arrayLength | Int | 3 |
stringLength | Int | 13 |
objectLength | Int | 4 |
newGuid()
Возвращает значение в формате глобального уникального идентификатора. Эта функция может использоваться только в значении параметра по умолчанию.
Пространство имен: sys.
Эту функцию можно использовать только в выражении для значения параметра по умолчанию. При использовании этой функции где-либо еще в файле Bicep возвращается ошибка. Функция не разрешена в других частях файла Bicep, поскольку она возвращает разные значения при каждом вызове. Развертывание одного и того же файла Bicep с одинаковыми параметрами, как правило, не будет возвращать одинаковые результаты.
Функция newGuid отличается от функции guid, так как она не принимает никаких параметров. При вызове функции guid с теми же параметрами каждый раз возвращается один и тот же идентификатор. Используйте функцию guid, если вам необходимо гарантированно создавать один и тот же идентификатор GUID для конкретного окружения. Используйте функцию newGuid, если каждый раз вам требуется другой идентификатор, например развертывание ресурсов в тестовой среде.
Для создания глобального уникального идентификатора функция newGuid использует структуру GUID на платформе .NET Framework.
Если вы используете повторное развертывание предыдущего успешного развертывания, а предыдущее развертывание включает параметр, использующий функцию newGuid, то этот параметр не будет вычисляться повторно. Вместо этого значение параметра из предыдущего развертывания автоматически используется повторно в развертывании отката.
В тестовой среде может потребоваться многократное развертывание ресурсов, которые активны только в течение короткого времени. Вместо конструирования уникальных имен для их создания можно использовать функцию newGuid с функцией uniqueString.
Будьте внимательны при повторном развертывании файла Bicep, который использует функцию newGuid для значения по умолчанию. При повторном развертывании без ввода значения параметра функция вычисляется повторно. Если нужно обновить существующий ресурс, а не создать новый, следует передать значение параметра из предыдущего развертывания.
Строка, содержащая 36 символов, в формате глобального уникального идентификатора.
В следующем примере показан параметр с новым идентификатором.
param guidValue string = newGuid()
output guidOutput string = guidValue
Выходные данные из предыдущего примера различаются для каждого развертывания, но будут выглядеть примерно так:
Имя. | Тип | значение |
---|---|---|
guidOutput | строка | b76a51fc-bd72-4a77-b9a2-3c29e7d2e551 |
В следующем примере функция newGuid используется для создания уникального имени для учетной записи хранения. Этот файл Bicep может работать для тестовой среды, где учетная запись хранения существует в течение непродолжительного времени и не развертывается повторно.
param guidValue string = newGuid()
var storageName = 'storage${uniqueString(guidValue)}'
resource myStorage 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: storageName
location: 'West US'
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {}
}
output nameOutput string = storageName
Выходные данные из предыдущего примера различаются для каждого развертывания, но будут выглядеть примерно так:
Имя. | Тип | значение |
---|---|---|
nameOutput | строка | storagenziwvyru7uxie |
padLeft(valueToPad, totalLength, paddingCharacter)
Возвращает выровненную по правому краю строку, добавляя символы в левую часть до достижения общее указанной длины.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
значение_для_заполнения | Да | строка или целое число | Значение, выравниваемое по правому краю. |
общая_длина | Да | INT | Общее число символов в возвращаемой строке. |
символ_заполнения | No | один знак | Символ, используемый для заполнения левой части до достижения общей длины. Значение по умолчанию — пробел. |
Если длина исходной строки превышает число знаков для заполнения, то знаки не добавляются.
Строка, содержащая по крайней мере число указанных знаков.
В следующем примере показано, как заполнить указанное пользователем значение параметра, добавляя знак нуля до достижения общего числа знаков.
param testString string = '123'
output stringOutput string = padLeft(testString, 10, '0')
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
stringOutput | Строка | 0000000123 |
replace(originalString, oldString, newString)
Возвращает новую строку, в которой все экземпляры одной строки заменены другой строкой.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
исходная_строка | Да | строка | Значение, в котором все экземпляры одной строки заменены другой строкой. |
oldString | Да | строка | Строка, которая удаляется из исходной строки. |
newString | Да | строка | Строка, добавляемая вместо удаляемой строки. |
Строка с замененными знаками.
В приведенном ниже примере показано, как удалить все тире из предоставленной пользователем строки и как заменить часть строки другой строкой.
param testString string = '123-123-1234'
output firstOutput string = replace(testString, '-', '')
output secondOutput string = replace(testString, '1234', 'xxxx')
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
firstOutput | Строка | 1231231234 |
secondOutput | Строка | 123-123-xxxx |
skip(originalValue, numberToSkip)
Возвращает строку, содержащую все знаки из исходной строки, начиная с заданной позиции, или массив, содержащий все элементы из исходного массива, начиная с заданной позиции.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
originalValue | Да | массив или строка | Массив или строка, используемые для пропуска. |
numberToSkip | Да | INT | Число элементов или знаков, которые необходимо пропустить. Если это значение меньше или равно 0, то возвращаются все элементы или знаки в значении. Если это значение превышает длину массива или строки, возвращается пустой массив или строка. |
Массив или строка.
В следующем примере пропускается заданное число элементов в массиве и заданное число знаков в строке.
param testArray array = [
'one'
'two'
'three'
]
param elementsToSkip int = 2
param testString string = 'one two three'
param charactersToSkip int = 4
output arrayOutput array = skip(testArray, elementsToSkip)
output stringOutput string = skip(testString, charactersToSkip)
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
arrayOutput | Массив | ["three"] |
stringOutput | Строка | two three |
split(inputString, delimiter)
Возвращает массив строк, содержащий подстроки входной строки, разделенные переданными разделителями.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
inputString | Да | строка | Строка для разделения. |
разделитель | Да | строка или массив строк | Разделитель для разбиения строки. |
Массив строк.
В следующем примере входная строка разбивается с помощью запятой или точки с запятой.
param firstString string = 'one,two,three'
param secondString string = 'one;two,three'
var delimiters = [
','
';'
]
output firstOutput array = split(firstString, ',')
output secondOutput array = split(secondString, delimiters)
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
firstOutput | Массив | ["one", "two", "three"] |
secondOutput | Массив | ["one", "two", "three"] |
startsWith(stringToSearch, stringToFind)
Определяет, начинается ли строка с определенного значения. При сравнении учитывается регистр букв.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
stringToSearch | Да | строка | Значение, содержащее элемент, который необходимо найти. |
stringToFind | Да | строка | Значение, которое необходимо найти. |
True
Значение, если первый символ или символы строки соответствуют значению; False
в противном случае .
В следующем примере показано, как использовать функции startsWith и endsWith:
output startsTrue bool = startsWith('abcdef', 'ab')
output startsCapTrue bool = startsWith('abcdef', 'A')
output startsFalse bool = startsWith('abcdef', 'e')
output endsTrue bool = endsWith('abcdef', 'ef')
output endsCapTrue bool = endsWith('abcdef', 'F')
output endsFalse bool = endsWith('abcdef', 'e')
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
startsTrue | Bool | Истина |
startsCapTrue | Bool | Истина |
startsFalse | Bool | False |
endsTrue | Bool | Истина |
endsCapTrue | Bool | Истина |
endsFalse | Bool | False |
string(valueToConvert)
Преобразует указанное значение в строку.
Строки возвращаются как есть. Другие типы преобразуются в эквивалентное представление JSON.
Если необходимо преобразовать строку в JSON, т. е. кавычки и escape-файл, можно использовать substring(string([value]), 1, length(string([value]) - 2)
.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
valueToConvert | Да | Любое | Значение, которое необходимо преобразовать в строку. Можно преобразовать любой тип значения, включая объекты и массивы. |
Строка преобразованного значения.
В следующем примере показано, как преобразовать различные типы значений в строки:
param testObject object = {
valueA: 10
valueB: 'Example Text'
}
param testArray array = [
'\'a\''
'"b"'
'\\c\\'
]
param testInt int = 5
param testString string = 'foo " \' \\'
output objectOutput string = string(testObject)
output arrayOutput string = string(testArray)
output intOutput string = string(testInt)
output stringOutput string = string(testString)
output stringEscapedOutput string = substring(string([testString]), 1, length(string([testString])) - 2)
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
objectOutput | Строка | {"valueA":10,"valueB":"Example Text"} |
arrayOutput | Строка | ["'a'","\"b\"","\\c\\"] |
intOutput | Строка | 5 |
stringOutput | Строка | foo " ' \ |
stringEscapedOutput | Строка | "foo \" ' \\" |
substring(stringToParse, startIndex, length)
Возвращает подстроку, которая начинается с указанной позиции и содержит указанное количество символов.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
stringToParse | Да | строка | Исходная строка, из которой извлекается подстрока. |
startIndex | No | INT | Отсчитываемая от нуля позиция первого знака для подстроки. |
length | No | INT | Число символов в подстроке. Этот параметр должен ссылаться на позицию в строке. Значение этого параметра должно быть равным нулю или больше него. Если этот параметр опущен, возвращается весь остаток строки от начальной позиции. |
Подстрока. Также может принимать значение пустой строки, когда длина равна нулю.
Если substring выходит за пределы строки или когда длина меньше нуля, происходит ошибка выполнения функции. Следующий пример завершается ошибкой "Параметры индекса и длины должны относиться к расположению в строке. Параметр индекса: 0, параметр длины: 11, параметр длины строкового параметра: 10".
param inputString string = '1234567890'
var prefix = substring(inputString, 0, 11)
В следующем примере из параметра извлекается подстрока.
param testString string = 'one two three'
output substringOutput string = substring(testString, 4, 3)
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
substringOutput | Строка | two |
take(originalValue, numberToTake)
Возвращает строку, содержащую указанное число знаков, считая от начала строки, или массив, содержащий указанное число элементов, считая от начала массива.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
originalValue | Да | массив или строка | Массив или строка, из которых берутся элементы. |
numberToTake | Да | INT | Число элементов или знаков, которые необходимо взять. Если это значение меньше или равно 0, то возвращается пустой массив или строка. Если это значение превышает длину заданного массива или строки, возвращаются все элементы в массиве или строке. |
Массив или строка.
В следующем примере из массива извлекается заданное число элементов, а из строки — заданное число знаков.
param testArray array = [
'one'
'two'
'three'
]
param elementsToTake int = 2
param testString string = 'one two three'
param charactersToTake int = 2
output arrayOutput array = take(testArray, elementsToTake)
output stringOutput string = take(testString, charactersToTake)
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
arrayOutput | Массив | ["one", "two"] |
stringOutput | Строка | on |
toLower(stringToChange)
Преобразует указанную строку в нижний регистр.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
изменяемая_строка | Да | строка | Значение, преобразовываемое в нижний регистр. |
Возвращает строку, преобразованную в нижний регистр.
В следующем примере значение параметра преобразуется в нижний регистр и в верхний регистр.
param testString string = 'One Two Three'
output toLowerOutput string = toLower(testString)
output toUpperOutput string = toUpper(testString)
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
toLowerOutput | Строка | one two three |
toUpperOutput | Строка | ONE TWO THREE |
toUpper(stringToChange)
Преобразует указанную строку в верхний регистр.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
изменяемая_строка | Да | строка | Значение, преобразовываемое в верхний регистр. |
Возвращает строку, преобразованную в верхний регистр.
В следующем примере значение параметра преобразуется в нижний регистр и в верхний регистр.
param testString string = 'One Two Three'
output toLowerOutput string = toLower(testString)
output toUpperOutput string = toUpper(testString)
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
toLowerOutput | Строка | one two three |
toUpperOutput | Строка | ONE TWO THREE |
trim(stringToTrim)
Удаляет все начальные и конечные знаки пробела из указанной строки.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
stringToTrim | Да | строка | Обрезаемое значение. |
Строка без пробелов в начале и в конце.
В следующем примере из параметра удаляются пробелы.
param testString string = ' one two three '
output return string = trim(testString)
Выходные данные из предыдущего примера со значениями по умолчанию:
Имя. | Тип | значение |
---|---|---|
Ввод | Строка | one two three |
uniqueString(baseString, ...)
Создает детерминированную хэш-строку на основании значений, указанных как параметры.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
baseString | Да | строка | Значение, используемое в хэш-функции для создания уникальной строки. |
Дополнительные параметры (если необходимы) | Нет | строка | Можно добавить столько строк, сколько необходимо для создания значения, которое задает уровень уникальности. |
Эта функция полезна в тех случаях, когда необходимо создать уникальное имя ресурса. Указываются значения параметров, которые ограничивают область уникальности результата. Можно указать, является ли уникальным имя в подписке, группе ресурсов или развертывании.
Возвращаемое значение не случайная строка, а, скорее, результат применения хэш-функции. Возвращаемое значение содержит 13 знаков. Оно не является глобальным уникальным значением. Вы можете добавить к значению префикс из своего соглашения об именовании, чтобы создать значимое имя. В следующем примере показан формат возвращаемого значения. Фактическое значение зависит от указанных параметров.
tcvhiyu5h2o5o
В следующих примерах показывается, как использовать uniqueString при создании уникального значения для часто используемых уровней.
Уникальное в пределах подписки.
uniqueString(subscription().subscriptionId)
Уникальное в пределах группы ресурсов.
uniqueString(resourceGroup().id)
Уникальное в пределах развертывания для группы ресурсов.
uniqueString(resourceGroup().id, deployment().name)
В следующем примере показано, как создать уникальное имя учетной записи хранения на основе вашей группы ресурсов. Внутри группы ресурсов имена не будут уникальными, если создавать их таким способом.
resource mystorage 'Microsoft.Storage/storageAccounts@2023-04-01' = {
name: 'storage${uniqueString(resourceGroup().id)}'
...
}
Если каждый раз при развертывании файла Bicep необходимо создать новое уникальное имя и при этом не обновлять ресурс, можно использовать функцию utcNow с функцией uniqueString. Этот подход можно использовать в тестовой среде. Пример см. в разделе о функции utcNow. Обратите внимание, что функцию utcNow можно использовать только в выражении, определяющем значение параметра по умолчанию.
Строка, содержащая 13 символов.
В следующем примере возвращаются результаты выполнения uniquestring.
output uniqueRG string = uniqueString(resourceGroup().id)
output uniqueDeploy string = uniqueString(resourceGroup().id, deployment().name)
uri(baseUri, relativeUri)
Создает абсолютный URI, объединяя строки baseUri и relativeUri.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
baseUri | Да | строка | Строка базового универсального кода ресурса (URI). Следите за поведением в отношении обработки замыкающей косой черты (/), как описано ниже в этой таблице. |
relativeUri | Да | строка | Строка относительного универсального кода ресурса (URI), добавляемая к строке базового универсального кода ресурса (URI). |
Если
baseUri
заканчивается косой чертой, результат простоbaseUri
следуетrelativeUri
. Если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/', '/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
параметры, указанные в RFC 3986, разделе 5.
Строка, представляющая абсолютный URI для базового и относительного значений.
В следующем примере показано, как использовать функции uri, uriComponent и uriComponentToString:
var uriFormat = uri('http://contoso.com/resources/', 'nested/azuredeploy.json')
var uriEncoded = uriComponent(uriFormat)
output uriOutput string = uriFormat
output componentOutput string = uriEncoded
output toStringOutput string = uriComponentToString(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(stringToEncode)
Кодирует URI.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
stringToEncode | Да | строка | Значение для кодирования. |
Строка со значением, закодированным в формате URI.
В следующем примере показано, как использовать функции uri, uriComponent и uriComponentToString:
var uriFormat = uri('http://contoso.com/resources/', 'nested/azuredeploy.json')
var uriEncoded = uriComponent(uriFormat)
output uriOutput string = uriFormat
output componentOutput string = uriEncoded
output toStringOutput string = uriComponentToString(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(uriEncodedString)
Возвращает строку со значением, закодированным в формате URI.
Пространство имен: sys.
Параметр | Обязательное поле | Type | Описание |
---|---|---|---|
uriEncodedString | Да | строка | Значение, закодированное в формате URI, которое необходимо преобразовать в строку. |
Декодированная строка со значением, закодированным в формате URI.
В следующем примере показано, как использовать функции uri, uriComponent и uriComponentToString:
var uriFormat = uri('http://contoso.com/resources/', 'nested/azuredeploy.json')
var uriEncoded = uriComponent(uriFormat)
output uriOutput string = uriFormat
output componentOutput string = uriEncoded
output toStringOutput string = uriComponentToString(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 |
- Описание разделов в файле Bicep приведено в статье Общие сведения о структуре и синтаксисе файлов Bicep.
- Чтобы выполнить заданное число итераций при создании типа ресурса, см. статью Итеративные циклы в Bicep.
- Дополнительные сведения о развертывании созданного вами файла Bicep см. в статье Развертывание ресурсов с помощью файла Bicep и Azure PowerShell.