Funções de cadeia de caracteres para Bicep

Este artigo descreve as funções do Bíceps para trabalhar com cadeias de caracteres.

base64

base64(inputString)

Retorna a representação base64 da cadeia de caracteres de entrada.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
inputString Sim string O valor a retornar como uma representação base64.

Valor devolvido

Uma cadeia de caracteres que contém a representação base64.

Exemplos

O exemplo a seguir mostra como usar a função 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)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
base64Saída String b25lLCB0d28sIHRocmVl
toStringOutput String Um dois três
toJsonOutput Object {"um": "a", "dois": "b"}

base64ToJson

base64ToJson(base64Value)

Converte uma representação base64 em um objeto JSON.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
base64Valor Sim string A representação base64 para converter em um objeto JSON.

Valor devolvido

Um objeto JSON.

Exemplos

O exemplo a seguir usa a função base64ToJson para converter um valor 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)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
base64Saída String b25lLCB0d28sIHRocmVl
toStringOutput String Um dois três
toJsonOutput Object {"um": "a", "dois": "b"}

base64ToString

base64ToString(base64Value)

Converte uma representação base64 em uma cadeia de caracteres.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
base64Valor Sim string A representação base64 para converter em uma cadeia de caracteres.

Valor devolvido

Uma cadeia de caracteres do valor base64 convertido.

Exemplos

O exemplo a seguir usa a função base64ToString para converter um valor 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)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
base64Saída String b25lLCB0d28sIHRocmVl
toStringOutput String Um dois três
toJsonOutput Object {"um": "a", "dois": "b"}

concat

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

Combina vários valores de cadeia de caracteres e retorna a cadeia de caracteres concatenada, ou combina várias matrizes e retorna a matriz concatenada. Para melhorar a legibilidade, use interpolação de cadeia de caracteres em vez da concat() função. No entanto, em alguns casos, como a substituição de cadeia de caracteres em cadeias de caracteres de várias linhas, talvez seja necessário recorrer ao uso da concat() função ou da replace() função.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
Arg1 Sim cadeia de caracteres ou matriz A primeira cadeia de caracteres ou matriz para concatenação.
Mais argumentos Não cadeia de caracteres ou matriz Mais cadeias de caracteres ou matrizes em ordem sequencial para concatenação.

Esta função pode aceitar qualquer número de argumentos e pode aceitar cadeias de caracteres ou matrizes para os parâmetros. No entanto, não é possível fornecer matrizes e cadeias de caracteres para parâmetros. As cadeias de caracteres são apenas concatenadas com outras cadeias de caracteres.

Valor devolvido

Uma cadeia de caracteres ou matriz de valores concatenados.

Exemplos

O exemplo a seguir mostra uma comparação entre o uso de interpolação e o uso da concat() função. As duas saídas retornam o mesmo valor.

param prefix string = 'prefix'

output concatOutput string = concat(prefix, 'And', uniqueString(resourceGroup().id))
output interpolationOutput string = '${prefix}And${uniqueString(resourceGroup().id)}'

As saídas do exemplo anterior com o valor padrão são:

Nome Tipo valor
concatOutput String prefixAnd5yj4yjf5mbg72
interpolaçãoOutput String prefixAnd5yj4yjf5mbg72

Atualmente, não há suporte para interpolação em cadeias de caracteres de várias linhas. O exemplo a seguir mostra uma comparação entre o uso de interpolação e o uso da concat() função.

var blocked = 'BLOCKED'

output concatOutput string = concat('''interpolation
is ''', blocked)
output interpolationOutput string = '''interpolation
is ${blocked}'''

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
concatOutput String interpolação\nis BLOQUEADO
interpolaçãoOutput String interpolação\nis ${bloqueado}

contém

contains(container, itemToFind)

Verifica se uma matriz contém um valor, um objeto contém uma chave ou uma cadeia de caracteres contém uma substring. A comparação de cadeia de caracteres diferencia maiúsculas de minúsculas. No entanto, ao testar se um objeto contém uma chave, a comparação não diferencia maiúsculas de minúsculas.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
contentor Sim matriz, objeto ou cadeia de caracteres O valor que contém o valor a ser localizado.
itemToFind Sim string ou int O valor a ser encontrado.

Valor devolvido

True se o item for encontrado; caso contrário, False.

Exemplos

O exemplo a seguir mostra como usar contém com diferentes tipos:

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')

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
stringTrue Bool True
stringFalse Bool False
objectTrue Bool True
objectFalse Bool False
arrayTrue Bool True
arrayFalse Bool False

dataUri

dataUri(stringToConvert)

Converte um valor em um URI de dados.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
stringToConverter Sim string O valor a ser convertido em um URI de dados.

Valor devolvido

Uma cadeia de caracteres formatada como um URI de dados.

Exemplos

O exemplo a seguir converte um valor em um URI de dados e converte um URI de dados em uma cadeia de caracteres:

param stringToTest string = 'Hello'
param dataFormattedString string = 'data:;base64,SGVsbG8sIFdvcmxkIQ=='

output dataUriOutput string = dataUri(stringToTest)
output toStringOutput string = dataUriToString(dataFormattedString)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
dataUriOutput String dados:texto/simples; Charset=UTF8; base64,SGVsbG8=
toStringOutput String Hello, World!

dataUriToString

dataUriToString(dataUriToConvert)

Converte um valor formatado de URI de dados em uma cadeia de caracteres.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
dataUriToConvert Sim string O valor de URI de dados a ser convertido.

Valor devolvido

Uma cadeia de caracteres que contém o valor convertido.

Exemplos

O exemplo a seguir converte um valor em um URI de dados e converte um URI de dados em uma cadeia de caracteres:

param stringToTest string = 'Hello'
param dataFormattedString string = 'data:;base64,SGVsbG8sIFdvcmxkIQ=='

output dataUriOutput string = dataUri(stringToTest)
output toStringOutput string = dataUriToString(dataFormattedString)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
dataUriOutput String dados:texto/simples; Charset=UTF8; base64,SGVsbG8=
toStringOutput String Hello, World!

empty

empty(itemToTest)

Determina se uma matriz, objeto ou cadeia de caracteres está vazia ou nula.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
itemToTest Sim matriz, objeto ou cadeia de caracteres O valor para verificar se está vazio ou nulo.

Valor devolvido

Retorna True se o valor estiver vazio ou nulo, caso contrário, False.

Exemplos

O exemplo a seguir verifica se uma matriz, objeto e cadeia de caracteres estão vazios.

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)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
arrayVazio Bool True
objectEmpty Bool True
stringEmpty Bool True
stringNull Bool True

termina com

endsWith(stringToSearch, stringToFind)

Determina se uma cadeia de caracteres termina com um valor. A comparação não diferencia maiúsculas de minúsculas.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
stringToSearch Sim string O valor que contém o item a ser localizado.
stringToFind Sim string O valor a ser encontrado.

Valor devolvido

True se o(s) último(s) caractere(s) da cadeia corresponderem ao valor; caso contrário, False.

Exemplos

O exemplo a seguir mostra como usar as funções startsWith e 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')

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
startsTrue Bool True
começaCapTrue Bool True
startsFalse Bool False
FimVerdadeiro Bool True
terminasCapTrue Bool True
terminasFalso Bool False

Primeiro

first(arg1)

Retorna o primeiro caractere da cadeia de caracteres ou o primeiro elemento da matriz. Se uma string vazia for fornecida, a função resultará em uma string vazia. No caso de uma matriz vazia, a função retorna null.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
Arg1 Sim matriz ou cadeia de caracteres O valor para recuperar o primeiro elemento ou caractere.

Valor devolvido

Uma cadeia de caracteres do primeiro caractere ou o tipo (string, int, array ou object) do primeiro elemento de uma matriz.

Exemplos

O exemplo a seguir mostra como usar a primeira função com uma matriz e uma cadeia de caracteres.

param arrayToTest array = [
  'one'
  'two'
  'three'
]

output arrayOutput string = first(arrayToTest)
output stringOutput string = first('One Two Three')

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
arrayOutput String um
stringOutput String O

format

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

Cria uma cadeia de caracteres formatada a partir de valores de entrada.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
formatString Sim string A cadeia de caracteres de formato composto.
Arg1 Sim string, inteiro ou booleano O valor a ser incluído na cadeia de caracteres formatada.
Argumentos adicionais Não string, inteiro ou booleano Valores adicionais a serem incluídos na cadeia de caracteres formatada.

Observações

Use esta função para formatar uma cadeia de caracteres no arquivo Bicep. Ele usa as mesmas opções de formatação que o método System.String.Format no .NET.

Exemplos

O exemplo a seguir mostra como usar a função 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)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
formatTest [en] String Hello, User. Formatted number: 8,175,133
formatObject String objectToFormat: {'prop':'value'}

guid

guid(baseString, ...)

Cria um valor no formato de um identificador global exclusivo com base nos valores fornecidos como parâmetros.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
baseString Sim string O valor utilizado na função hash para criar o GUID.
parâmetros adicionais, conforme necessário Não string Você pode adicionar quantas cadeias de caracteres forem necessárias para criar o valor que especifica o nível de exclusividade.

Observações

Essa função é útil quando você precisa criar um valor no formato de um identificador global exclusivo. Você fornece valores de parâmetro que limitam o escopo de exclusividade para o resultado. Você pode especificar se o nome é exclusivo para assinatura, grupo de recursos ou implantação.

O valor devolvido não é uma cadeia aleatória, mas sim o resultado de uma função hash nos parâmetros. O valor retornado tem 36 caracteres. Não é globalmente único. Para criar um novo GUID não baseado nesse valor hash dos parâmetros, utilize a função newGuid.

Nota

A ordem dos parâmetros afeta o valor retornado. Por exemplo:

guid('hello', 'world') e guid('world', 'hello')

não devolva o mesmo valor.

Os exemplos a seguir mostram como usar guid para criar um valor exclusivo para níveis comumente usados.

Escopo exclusivo para assinatura

guid(subscription().subscriptionId)

Escopo exclusivo para grupo de recursos

guid(resourceGroup().id)

Escopo exclusivo para implantação para um grupo de recursos

guid(resourceGroup().id, deployment().name)

A guid função implementa o algoritmo do RFC 4122 §4.3. A fonte original pode ser encontrada em GuidUtility com algumas modificações.

Valor devolvido

Uma cadeia de caracteres que contém 36 caracteres no formato de um identificador global exclusivo.

Exemplos

O exemplo a seguir retorna resultados de guid:

output guidPerSubscription string = guid(subscription().subscriptionId)
output guidPerResourceGroup string = guid(resourceGroup().id)
output guidPerDeployment string = guid(resourceGroup().id, deployment().name)

indexOf

indexOf(stringToSearch, stringToFind)

Retorna a primeira posição de um valor dentro de uma cadeia de caracteres. A comparação não diferencia maiúsculas de minúsculas.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
stringToSearch Sim string O valor que contém o item a ser localizado.
stringToFind Sim string O valor a ser encontrado.

Valor devolvido

Um inteiro que representa a posição do item a ser localizado. O valor é baseado em zero. Se o item não for encontrado, -1 será devolvido.

Exemplos

O exemplo a seguir mostra como usar as funções indexOf e 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')

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
primeiroT Int 0
Última T Int 3
firstString Int 2
lastString Int 0
notFound Int -1

join

join(inputArray, delimiter)

Junta uma matriz de cadeia de caracteres em uma única cadeia de caracteres, separada usando um delimitador.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
inputArray Sim Uma matriz de cadeia de caracteres. Uma matriz de cadeias de caracteres para ingressar.
delimitador Sim O delimitador a ser usado para dividir a cadeia de caracteres.

Valor devolvido

Uma cadeia de caracteres.

Exemplos

O exemplo a seguir une a matriz de cadeia de caracteres de entrada em cadeias de caracteres delimitadas por vírgula ou ponto-e-vírgula.

var arrayString = [
  'one'
  'two'
  'three'
]

output firstOutput string = join(arrayString, ',')
output secondOutput string = join(arrayString, ';')

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
firstOutput String "um, dois, três"
segundoSaída String "um; dois; três"

Esta função requer Bicep CLI versão 0.8.X ou superior.

json

json(arg1)

Converte uma cadeia de caracteres JSON válida em um tipo de dados JSON. Para obter mais informações, consulte função json.

Espaço de nome: sys.

Último

last(arg1)

Retorna o último caractere da cadeia de caracteres ou o último elemento da matriz.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
Arg1 Sim matriz ou cadeia de caracteres O valor para recuperar o último elemento ou caractere.

Valor devolvido

Uma cadeia de caracteres do último caractere ou o tipo (string, int, array ou objeto) do último elemento em uma matriz.

Exemplos

O exemplo a seguir mostra como usar a última função com uma matriz e uma cadeia de caracteres.

param arrayToTest array = [
  'one'
  'two'
  'three'
]

output arrayOutput string = last(arrayToTest)
output stringOutput string = last('One Two Three')

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
arrayOutput String três
stringOutput String e

lastIndexOf

lastIndexOf(stringToSearch, stringToFind)

Retorna a última posição de um valor dentro de uma cadeia de caracteres. A comparação não diferencia maiúsculas de minúsculas.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
stringToSearch Sim string O valor que contém o item a ser localizado.
stringToFind Sim string O valor a ser encontrado.

Valor devolvido

Um inteiro que representa a última posição do item a ser encontrado. O valor é baseado em zero. Se o item não for encontrado, -1 será devolvido.

Exemplos

O exemplo a seguir mostra como usar as indexOf funções e 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')

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
primeiroT Int 0
Última T Int 3
firstString Int 2
lastString Int 0
notFound Int -1

length

length(string)

Retorna o número de caracteres em uma cadeia de caracteres, elementos em uma matriz ou propriedades de nível raiz em um objeto.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
Arg1 Sim matriz, cadeia de caracteres ou objeto A matriz a ser usada para obter o número de elementos, a cadeia de caracteres a ser usada para obter o número de caracteres ou o objeto a ser usado para obter o número de propriedades de nível raiz.

Valor devolvido

Um int.

Exemplos

O exemplo a seguir mostra como usar o comprimento com uma matriz e uma cadeia de caracteres:

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)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
arrayLength Int 3
stringLength Int 13
objectLength Int 4

newGuid

newGuid()

Retorna um valor no formato de um identificador global exclusivo. Esta função só pode ser usada no valor padrão para um parâmetro.

Espaço de nome: sys.

Observações

Você só pode usar essa função dentro de uma expressão para o valor padrão de um parâmetro. Usar essa função em qualquer outro lugar em um arquivo Bicep retorna um erro. A função não é permitida em outras partes do arquivo Bicep porque retorna um valor diferente cada vez que é chamada. Implantar o mesmo arquivo Bicep com os mesmos parâmetros não produziria os mesmos resultados de forma confiável.

A função newGuid difere da função guid porque não usa nenhum parâmetro. Quando você chama guid com os mesmos parâmetros, ele retorna o mesmo identificador cada vez. Use guid quando precisar gerar de forma confiável o mesmo GUID para um ambiente específico. Use newGuid quando precisar de um identificador diferente a cada vez, como implantar recursos em um ambiente de teste.

A função newGuid usa a estrutura Guid no .NET Framework para gerar o identificador global exclusivo.

Se você usar a opção para reimplantar uma implantação anterior bem-sucedida e a implantação anterior incluir um parâmetro que usa newGuid, o parâmetro não será reavaliado. Em vez disso, o valor do parâmetro da implantação anterior é reutilizado automaticamente na implantação de reversão.

Em um ambiente de teste, talvez seja necessário implantar repetidamente recursos que vivem apenas por um curto período de tempo. Em vez de construir nomes exclusivos, você pode usar newGuid com uniqueString para criar nomes exclusivos.

Tenha cuidado ao reimplantar um arquivo Bicep que depende da função newGuid para um valor padrão. Quando você reimplanta e não fornece um valor para o parâmetro, a função é reavaliada. Se você quiser atualizar um recurso existente em vez de criar um novo, passe o valor do parâmetro da implantação anterior.

Valor devolvido

Uma cadeia de caracteres que contém 36 caracteres no formato de um identificador global exclusivo.

Exemplos

O exemplo a seguir mostra um parâmetro com um novo identificador.

param guidValue string = newGuid()

output guidOutput string = guidValue

A saída do exemplo anterior varia para cada implantação, mas será semelhante a:

Nome Tipo valor
guidOutput string b76a51fc-bd72-4a77-b9a2-3c29e7d2e551

O exemplo a seguir usa a função newGuid para criar um nome exclusivo para uma conta de armazenamento. Esse arquivo Bicep pode funcionar para um ambiente de teste em que a conta de armazenamento existe por um curto período de tempo e não é reimplantada.

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

A saída do exemplo anterior varia para cada implantação, mas será semelhante a:

Nome Tipo valor
nameOutput string storagenziwvyru7uxie

padLeft [en]

padLeft(valueToPad, totalLength, paddingCharacter)

Retorna uma cadeia de caracteres alinhada à direita adicionando caracteres à esquerda até atingir o comprimento total especificado.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
valorToPad Sim string ou int O valor a ser alinhado à direita.
totalLength Sim número inteiro O número total de caracteres na cadeia de caracteres retornada.
preenchimentoCharacter Não Caractere único O caractere a ser usado para preenchimento à esquerda até que o comprimento total seja atingido. O valor padrão é um espaço.

Se a cadeia de caracteres original for maior do que o número de caracteres a serem preenchidos, nenhum caractere será adicionado.

Valor devolvido

Uma cadeia de caracteres com pelo menos o número de caracteres especificados.

Exemplos

O exemplo a seguir mostra como preencher o valor do parâmetro fornecido pelo usuário adicionando o caractere zero até atingir o número total de caracteres.

param testString string = '123'

output stringOutput string = padLeft(testString, 10, '0')

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
stringOutput String 0000000123

replace

replace(originalString, oldString, newString)

Retorna uma nova cadeia de caracteres com todas as instâncias de uma cadeia de caracteres substituídas por outra cadeia de caracteres.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
originalString Sim string O valor que tem todas as instâncias de uma cadeia de caracteres substituídas por outra cadeia de caracteres.
oldString Sim string A cadeia de caracteres a ser removida da cadeia de caracteres original.
newString Sim string A cadeia de caracteres a ser adicionada no lugar da cadeia de caracteres removida.

Valor devolvido

Uma cadeia de caracteres com os caracteres substituídos.

Exemplos

O exemplo a seguir mostra como remover todos os traços da cadeia de caracteres fornecida pelo usuário e como substituir parte da cadeia de caracteres por outra cadeia de caracteres.

param testString string = '123-123-1234'

output firstOutput string = replace(testString, '-', '')
output secondOutput string = replace(testString, '1234', 'xxxx')

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
firstOutput String 1231231234
segundoSaída String 123-123-xxxx

skip

skip(originalValue, numberToSkip)

Retorna uma cadeia de caracteres com todos os caracteres após o número especificado de caracteres ou uma matriz com todos os elementos após o número especificado de elementos.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
originalValor Sim matriz ou cadeia de caracteres A matriz ou cadeia de caracteres a ser usada para ignorar.
númeroToSkip Sim número inteiro O número de elementos ou caracteres a ignorar. Se esse valor for 0 ou menos, todos os elementos ou caracteres no valor serão retornados. Se for maior do que o comprimento da matriz ou cadeia de caracteres, uma matriz ou cadeia de caracteres vazia será retornada.

Valor devolvido

Uma matriz ou cadeia de caracteres.

Exemplos

O exemplo a seguir ignora o número especificado de elementos na matriz e o número especificado de caracteres em uma cadeia de caracteres.

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)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
arrayOutput Matriz ["três"]
stringOutput String dois três

split

split(inputString, delimiter)

Retorna uma matriz de cadeias de caracteres que contém as substrings da cadeia de caracteres de entrada que são delimitadas pelos delimitadores especificados.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
inputString Sim string A cadeia de caracteres a ser dividida.
delimitador Sim string ou matriz de strings O delimitador a ser usado para dividir a cadeia de caracteres.

Valor devolvido

Uma matriz de cadeias de caracteres.

Exemplos

O exemplo a seguir divide a cadeia de caracteres de entrada com uma vírgula e com uma vírgula ou ponto-e-vírgula.

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)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
firstOutput Matriz ["um", "dois", "três"]
segundoSaída Matriz ["um", "dois", "três"]

começaCom

startsWith(stringToSearch, stringToFind)

Determina se uma cadeia de caracteres começa com um valor. A comparação não diferencia maiúsculas de minúsculas.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
stringToSearch Sim string O valor que contém o item a ser localizado.
stringToFind Sim string O valor a ser encontrado.

Valor devolvido

True se o(s) primeiro(s) caractere(s) da cadeia corresponderem ao valor; caso contrário, False.

Exemplos

O exemplo a seguir mostra como usar as funções startsWith e 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')

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
startsTrue Bool True
começaCapTrue Bool True
startsFalse Bool False
FimVerdadeiro Bool True
terminasCapTrue Bool True
terminasFalso Bool False

string

string(valueToConvert)

Converte o valor especificado em uma cadeia de caracteres. As cadeias de caracteres são retornadas como estão. Outros tipos são convertidos para sua representação JSON equivalente. Se você precisar converter uma string para JSON, ou seja, citar/escapar, você pode usar substring(string([value]), 1, length(string([value]) - 2).

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
valueToConvert Sim Qualquer O valor a ser convertido em string. Qualquer tipo de valor pode ser convertido, incluindo objetos e matrizes.

Valor devolvido

Uma cadeia de caracteres do valor convertido.

Exemplos

O exemplo a seguir mostra como converter diferentes tipos de valores em cadeias de caracteres:

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)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
objectOutput String {"valueA":10,"valueB":"Example Text"}
arrayOutput String ["'a'","\"b\"","\\c\\"]
intOutput String 5
stringOutput String foo " ' \
stringEscapedOutput String "foo \" ' \\"

substring

substring(stringToParse, startIndex, length)

Retorna uma substring que começa na posição de caractere especificada e contém o número especificado de caracteres.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
stringToParse Sim string A cadeia de caracteres original da qual a substring é extraída.
startIndex Não número inteiro A posição do caractere inicial baseado em zero para a substring.
length Não número inteiro O número de caracteres para a substring. Deve referir-se a um local dentro da cadeia de caracteres. Deve ser zero ou maior. Se omitido, o restante da cadeia de caracteres da posição inicial será retornado.

Valor devolvido

A substring. Ou, uma cadeia de caracteres vazia se o comprimento for zero.

Observações

A função falha quando a substring se estende além do final da cadeia de caracteres ou quando o comprimento é menor que zero. O exemplo a seguir falha com o erro "Os parâmetros de índice e comprimento devem se referir a um local dentro da cadeia de caracteres. O parâmetro index: '0', o parâmetro length: '11', o comprimento do parâmetro string: '10'.".

param inputString string = '1234567890'

var prefix = substring(inputString, 0, 11)

Exemplos

O exemplo a seguir extrai uma substring de um parâmetro.

param testString string = 'one two three'
output substringOutput string = substring(testString, 4, 3)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
substringOutput String dois

take

take(originalValue, numberToTake)

Retorna uma cadeia de caracteres com o número especificado de caracteres do início da cadeia de caracteres ou uma matriz com o número especificado de elementos do início da matriz.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
originalValor Sim matriz ou cadeia de caracteres A matriz ou cadeia de caracteres da qual retirar os elementos.
númeroToTake Sim número inteiro O número de elementos ou caracteres a serem levados. Se esse valor for 0 ou menos, uma matriz ou cadeia de caracteres vazia será retornada. Se for maior do que o comprimento de uma determinada matriz ou cadeia de caracteres, todos os elementos na matriz ou cadeia de caracteres serão retornados.

Valor devolvido

Uma matriz ou cadeia de caracteres.

Exemplos

O exemplo a seguir usa o número especificado de elementos da matriz e caracteres de uma cadeia de caracteres.

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)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
arrayOutput Matriz ["um", "dois"]
stringOutput String em

paraMais baixo

toLower(stringToChange)

Converte a cadeia de caracteres especificada em minúsculas.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
stringToChange Sim string O valor a converter em minúsculas.

Valor devolvido

A cadeia de caracteres convertida em minúsculas.

Exemplos

O exemplo a seguir converte um valor de parâmetro em minúsculas e maiúsculas.

param testString string = 'One Two Three'

output toLowerOutput string = toLower(testString)
output toUpperOutput string = toUpper(testString)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
paraLowerOutput String Um dois três
toUpperOutput String UM DOIS TRÊS

toUpper

toUpper(stringToChange)

Converte a cadeia de caracteres especificada em maiúsculas.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
stringToChange Sim string O valor a converter em maiúsculas.

Valor devolvido

A cadeia de caracteres convertida em maiúsculas.

Exemplos

O exemplo a seguir converte um valor de parâmetro em minúsculas e maiúsculas.

param testString string = 'One Two Three'

output toLowerOutput string = toLower(testString)
output toUpperOutput string = toUpper(testString)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
paraLowerOutput String Um dois três
toUpperOutput String UM DOIS TRÊS

guarnição

trim(stringToTrim)

Remove todos os caracteres de espaço em branco à esquerda e à direita da cadeia de caracteres especificada.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
stringToTrim Sim string O valor a ser cortado.

Valor devolvido

A cadeia de caracteres sem caracteres de espaço em branco à esquerda e à direita.

Exemplos

O exemplo a seguir corta os caracteres de espaço em branco do parâmetro.

param testString string = '    one two three   '

output return string = trim(testString)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
regressar String Um dois três

uniqueString

uniqueString(baseString, ...)

Cria uma cadeia hash determinista, com base nos valores proporcionados como parâmetros.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
baseString Sim string O valor utilizado na função hash para criar uma cadeia exclusiva.
parâmetros adicionais, conforme necessário Não string Você pode adicionar quantas cadeias de caracteres forem necessárias para criar o valor que especifica o nível de exclusividade.

Observações

Essa função é útil quando você precisa criar um nome exclusivo para um recurso. Você fornece valores de parâmetro que limitam o escopo de exclusividade para o resultado. Você pode especificar se o nome é exclusivo para assinatura, grupo de recursos ou implantação.

O valor devolvido não é uma cadeia aleatória, mas sim o resultado de uma função hash. O valor retornado tem 13 caracteres. Não é globalmente único. Você pode combinar o valor com um prefixo da convenção de nomenclatura para criar um nome que seja significativo. O exemplo a seguir mostra o formato do valor retornado. O valor real varia de acordo com os parâmetros fornecidos.

tcvhiyu5h2o5o

Os exemplos a seguir mostram como usar uniqueString para criar um valor exclusivo para níveis comumente usados.

Escopo exclusivo para assinatura

uniqueString(subscription().subscriptionId)

Escopo exclusivo para grupo de recursos

uniqueString(resourceGroup().id)

Escopo exclusivo para implantação para um grupo de recursos

uniqueString(resourceGroup().id, deployment().name)

O exemplo a seguir mostra como criar um nome exclusivo para uma conta de armazenamento com base no seu grupo de recursos. Dentro do grupo de recursos, o nome não é exclusivo se construído da mesma maneira.

resource mystorage 'Microsoft.Storage/storageAccounts@2023-04-01' = {
  name: 'storage${uniqueString(resourceGroup().id)}'
  ...
}

Se você precisar criar um novo nome exclusivo cada vez que implantar um arquivo Bicep e não pretender atualizar o recurso, poderá usar a função utcNow com uniqueString. Você pode usar essa abordagem em um ambiente de teste. Para um exemplo, veja utcNow. Observe que a função utcNow só pode ser usada dentro de uma expressão para o valor padrão de um parâmetro.

Valor devolvido

Uma cadeia de caracteres contendo 13 caracteres.

Exemplos

O exemplo a seguir retorna resultados de uniquestring:

output uniqueRG string = uniqueString(resourceGroup().id)
output uniqueDeploy string = uniqueString(resourceGroup().id, deployment().name)

uri

uri(baseUri, relativeUri)

Cria um URI absoluto combinando o baseUri e a cadeia de caracteres relativeUri.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
baseUri Sim string A cadeia de caracteres uri base. Tenha o cuidado de observar o comportamento em relação ao manuseio da barra à direita ('/'), conforme descrito nesta tabela.
parenteUri Sim string A cadeia de caracteres de uri relativa a ser adicionada à cadeia de caracteres de uri de base.
  • Se baseUri terminar com uma barra à direita, o resultado é simplesmente baseUri seguido por relativeUri. Se relativeUri também começar com uma barra à esquerda, a barra à direita e a barra à esquerda serão combinadas numa só.

  • Se baseUri não terminar em uma barra à direita, uma das duas coisas acontece.

    • Se baseUri não tiver barras (além do "//" perto da frente), o resultado é simplesmente baseUri seguido por relativeUri.

    • Se baseUri tiver algumas barras, mas não terminar com uma barra, tudo, desde a última barra em diante, é removido e baseUri o resultado é baseUri seguido por relativeUri.

Seguem-se alguns exemplos:

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

Para obter detalhes completos, os baseUri parâmetros e relativeUri são resolvidos conforme especificado na RFC 3986, seção 5.

Valor devolvido

Uma cadeia de caracteres que representa o URI absoluto para os valores base e relativo.

Exemplos

O exemplo a seguir mostra como usar uri, uriComponent e 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)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
uriOutput String http://contoso.com/resources/nested/azuredeploy.json
componentOutput String http%3A%2F%2Fcontoso.com%2Fresources%2Fnested%2Fazuredeploy.json
toStringOutput String http://contoso.com/resources/nested/azuredeploy.json

uriComponent

uricomponent(stringToEncode)

Codifica um URI.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
stringToEncode Sim string O valor a ser codificado.

Valor devolvido

Uma cadeia de caracteres do valor codificado por URI.

Exemplos

O exemplo a seguir mostra como usar uri, uriComponent e 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)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
uriOutput String http://contoso.com/resources/nested/azuredeploy.json
componentOutput String http%3A%2F%2Fcontoso.com%2Fresources%2Fnested%2Fazuredeploy.json
toStringOutput String http://contoso.com/resources/nested/azuredeploy.json

uriComponentToString

uriComponentToString(uriEncodedString)

Retorna uma cadeia de caracteres de um valor codificado por URI.

Espaço de nome: sys.

Parâmetros

Parâmetro Necessário Type Description
uriEncodedString Sim string O valor codificado de URI para converter em uma cadeia de caracteres.

Valor devolvido

Uma cadeia de caracteres decodificada de valor codificado por URI.

Exemplos

O exemplo a seguir mostra como usar uri, uriComponent e 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)

A saída do exemplo anterior com os valores padrão é:

Nome Tipo valor
uriOutput String http://contoso.com/resources/nested/azuredeploy.json
componentOutput String http%3A%2F%2Fcontoso.com%2Fresources%2Fnested%2Fazuredeploy.json
toStringOutput String http://contoso.com/resources/nested/azuredeploy.json

Próximos passos