Compartilhar via


Funções de cadeia de caracteres para Bicep

Este artigo descreve as funções Bicep para trabalhar com cadeias de caracteres.

base64

base64(inputString)

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

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
inputString Sim string O valor a retornar como uma representação base64.

Retornar valor

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
base64Output String b25lLCB0d28sIHRocmVl
toStringOutput String um, dois, três
toJsonOutput Objeto {"one": "a", "two": "b"}

base64ToJson

base64ToJson(base64Value)

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

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
base64Value Sim string A representação base64 a ser convertida em um objeto JSON.

Retornar valor

Um objeto JSON.

Exemplos

O seguinte exemplo 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
base64Output String b25lLCB0d28sIHRocmVl
toStringOutput String um, dois, três
toJsonOutput Objeto {"one": "a", "two": "b"}

base64ToString

base64ToString(base64Value)

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

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
base64Value Sim string A representação base64 a ser convertida em uma cadeia de caracteres.

Retornar valor

Uma cadeia de caracteres do valor base64 convertido.

Exemplos

O seguinte exemplo 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
base64Output String b25lLCB0d28sIHRocmVl
toStringOutput String um, dois, três
toJsonOutput Objeto {"one": "a", "two": "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 a interpolação de cadeia de caracteres em vez da função concat(). No entanto, em alguns casos, como a substituição de cadeias de caracteres em cadeias de caracteres de várias linhas, talvez seja necessário fazer fallback usando a função concat() ou à função replace().

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
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 Cadeias de caracteres ou matrizes adicionais em ordem sequencial para concatenação.

Essa função pode conter qualquer número de argumentos e pode aceitar cadeias de caracteres ou matrizes como parâmetros. No entanto, você não pode apresentar cadeias de caracteres e matrizes para parâmetros. Só é possível concatenar cadeias de caracteres com outras cadeias de caracteres.

Retornar valor

Uma cadeia de caracteres ou matriz de valores concatenados.

Exemplos

O exemplo a seguir mostra uma comparação entre o uso da interpolação e o uso da função concat(). 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
interpolationOutput String prefixAnd5yj4yjf5mbg72

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

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 interpolation\nis BLOCKED
interpolationOutput String interpolation\nis ${blocked}

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 subcadeia de caracteres. 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.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
contêiner Sim matriz, objeto ou cadeia de caracteres O valor que contém o valor a ser encontrado.
itemToFind Sim cadeia de caracteres ou inteiro O valor a ser encontrado.

Valor retornado

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

Exemplos

O seguinte exemplo mostra como usar contains com tipos diferentes:

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 Falso
objectTrue Bool True
objectFalse Bool Falso
arrayTrue Bool True
arrayFalse Bool Falso

dataUri

dataUri(stringToConvert)

Converte um valor em um URI de dados.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
stringToConvert Sim string O valor a ser convertido em um URI de dados.

Retornar valor

Uma cadeia de caracteres formatada como um URI de dados.

Exemplos

O seguinte exemplo converte um valor em um URI de dados e 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 data:text/plain;charset=utf8;base64,SGVsbG8=
toStringOutput String Hello, World!

dataUriToString

dataUriToString(dataUriToConvert)

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

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
dataUriToConvert Sim string Os valor de URI de dados a ser convertido.

Retornar valor

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

Exemplos

O seguinte exemplo converte um valor em um URI de dados e 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 data:text/plain;charset=utf8;base64,SGVsbG8=
toStringOutput String Hello, World!

empty

empty(itemToTest)

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

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
itemToTest Sim matriz, objeto ou cadeia de caracteres O valor a ser verificado se está vazio ou nulo.

Valor retornado

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

Exemplos

O exemplo a seguir verifica se uma matriz, um objeto e uma 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
arrayEmpty Bool True
objectEmpty Bool True
stringEmpty Bool Verdadeiro
stringNull Bool True

endsWith

endsWith(stringToSearch, stringToFind)

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

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
stringToSearch Sim string O valor que contém o item a ser encontrado.
stringToFind Sim string O valor a ser encontrado.

Valor retornado

True se o último caractere ou caracteres da cadeia de caracteres corresponderem ao valor; caso contrário, False.

Exemplos

O seguinte exemplo 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
startsCapTrue Bool True
startsFalse Bool Falso
endsTrue Bool True
endsCapTrue Bool True
endsFalse Bool Falso

first

first(arg1)

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

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
arg1 Sim matriz ou cadeia de caracteres O valor para recuperar o primeiro elemento ou caractere.

Retornar valor

Uma cadeia de caracteres do primeiro caractere ou o tipo (cadeia de caracteres, inteiro, matriz ou objeto) do primeiro elemento em uma matriz.

Exemplos

O exemplo a seguir mostra como usar a primeira função com uma matriz e 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 one
stringOutput String O

format

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

Cria uma cadeia de caracteres formatada com base em valores de entrada.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
formatString Sim string A cadeia de caracteres de formato de composição.
arg1 Sim cadeia de caracteres, inteiro ou booliano O valor a ser incluído na cadeia de caracteres formatada.
argumentos adicionais Não cadeia de caracteres, inteiro ou booliano Valores adicionais a serem incluídos na cadeia de caracteres formatada.

Comentários

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

Exemplos

O exemplo a seguir mostra como usar a função de formatação.

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

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
baseString Sim string O valor usado na função de hash para criar o GUID.
parâmetros extras 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.

Comentários

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

O valor retornado não é uma cadeia de caracteres aleatória, mas sim o resultado de uma função de hash nos parâmetros. O valor retornado tem 36 caracteres. Ele não é globalmente exclusivo. Para criar uma GUID que não se baseie nesse valor de hash dos parâmetros, use a função newGuid.

Observação

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

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

não retornam o mesmo valor.

Os exemplos a seguir mostram como usar guid para criar um valor exclusivo para níveis usados com mais frequência.

Escopo exclusivo para a assinatura

guid(subscription().subscriptionId)

Escopo exclusivo para o grupo de recursos

guid(resourceGroup().id)

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

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

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

Retornar valor

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

Exemplos

O exemplo a seguir retorna os resultados do 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 em uma cadeia de caracteres. A comparação não diferencia maiúsculas de minúsculas.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
stringToSearch Sim string O valor que contém o item a ser encontrado.
stringToFind Sim string O valor a ser encontrado.

Retornar valor

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

Exemplos

O seguinte exemplo 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
firstT int 0
lastT int 3
firstString int 2
lastString int 0
NotFound int -1

join

join(inputArray, delimiter)

Une uma matriz de cadeia de caracteres em uma só cadeia de caracteres, separada usando um delimitador.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
inputArray Yes Uma matriz de cadeia de caracteres. Uma matriz de cadeias de caracteres a unir.
delimitador Sim O delimitador a ser usado para dividir a cadeia de caracteres.

Retornar valor

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 "one,two,three"
secondOutput String "one;two;three"

Essa função requer a CLI do Bicep 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 saber mais, confira função json.

Namespace: sys.

last

last(arg1)

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

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
arg1 Sim matriz ou cadeia de caracteres O valor para recuperar o último elemento ou caractere.

Retornar valor

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

Exemplos

O exemplo a seguir mostra como usar a última função com uma matriz e 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 em uma cadeia de caracteres. A comparação não diferencia maiúsculas de minúsculas.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
stringToSearch Sim string O valor que contém o item a ser encontrado.
stringToFind Sim string O valor a ser encontrado.

Retornar valor

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á retornado.

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
firstT int 0
lastT int 3
firstString int 2
lastString int 0
NotFound int -1

comprimento

length(string)

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

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
arg1 Sim matriz, cadeia de caracteres ou objeto A matriz usada para obter o número de elementos, a cadeia de caracteres usada para obter o número de caracteres ou o objeto usado para obter o número de propriedades em nível raiz.

Retornar valor

Um inteiro.

Exemplos

O seguinte exemplo mostra como usar length com uma matriz e 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. Só é possível usar essa função no valor padrão de um parâmetro.

Namespace: sys.

Comentários

Você só pode usar essa função em uma expressão do valor padrão de um parâmetro. O uso dela em qualquer outro lugar de um arquivo Bicep retorna um erro. A função não é permitida em outras partes do arquivo Bicep porque ela retorna um valor diferente cada vez que é chamada. Implantar o mesmo arquivo Bicep com os mesmos parâmetros não produziria os mesmos resultados com confiança.

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

A função newGuid usa a Estrutura de GUID do .NET Framework para gerar o identificador global exclusivo.

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

Em um ambiente de teste, talvez seja necessário implantar repetidamente os recursos que só duram um curto período. Em vez de construir nomes exclusivos, você pode usar a newGuid com uniqueString para criar nomes exclusivos.

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

Retornar valor

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 de acordo com 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 o ambiente de teste em que a conta de armazenamento existe por um curto período e não é reimplantado.

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 de acordo com cada implantação, mas será semelhante a:

Nome Tipo Valor
nameOutput string storagenziwvyru7uxie

padLeft

padLeft(valueToPad, totalLength, paddingCharacter)

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

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
valueToPad Sim cadeia de caracteres ou inteiro O valor para alinhar à direita.
totalLength Sim INT O número total de caracteres na cadeia de caracteres retornada.
paddingCharacter Não caractere único O caractere a ser usado para o preenchimento à esquerda até que o tamanho total seja atingido. O valor padrão é um espaço.

Se a cadeia de caracteres original for mais longa que o número de caracteres a ser preenchido, nenhum caractere será adicionado.

Retornar valor

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

Exemplos

O exemplo a seguir mostra como preencher o valor de parâmetro fornecido pelo usuário adicionando o caractere zero até que ele atinja 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

substituir

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.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
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 caractere a ser removida da cadeia de caracteres original.
newString Sim string A cadeia de caracteres a ser adicionada no lugar da cadeia removida.

Retornar valor

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
secondOutput 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.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
originalValue Sim matriz ou cadeia de caracteres A matriz ou cadeia de caracteres a ser usada para ignorar.
numberToSkip Sim INT O número de elementos ou caracteres a ser ignorado. Se esse valor for 0 ou menos, todos os elementos ou caracteres no valor serão retornados. Se ele for maior que o tamanho da matriz ou da cadeia de caracteres, uma matriz ou uma cadeia de caracteres vazia será retornada.

Retornar valor

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 Array ["three"]
stringOutput String two three

divisão

split(inputString, delimiter)

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

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
inputString Sim string A cadeia de caracteres a dividir.
delimitador Sim cadeia de caracteres ou matriz de cadeias de caracteres O delimitador a ser usado para dividir a cadeia de caracteres.

Retornar valor

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 um 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 Array ["one", "two", "three"]
secondOutput Array ["one", "two", "three"]

startsWith

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.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
stringToSearch Sim string O valor que contém o item a ser encontrado.
stringToFind Sim string O valor a ser encontrado.

Valor retornado

True se o primeiro caractere ou caracteres da cadeia de caracteres corresponderem ao valor; caso contrário, False.

Exemplos

O seguinte exemplo 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
startsCapTrue Bool True
startsFalse Bool Falso
endsTrue Bool True
endsCapTrue Bool True
endsFalse Bool Falso

string

string(valueToConvert)

Converte o valor especificado em uma cadeia de caracteres. As cadeias de caracteres são retornadas no estado em que se encontram. Outros tipos são convertidos na sua representação JSON equivalente. Se você precisar converter uma cadeia de caracteres em JSON, ou seja, citá-la/escapeá-la, poderá usar substring(string([value]), 1, length(string([value]) - 2).

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
valueToConvert Sim Qualquer O valor a ser convertido em cadeia de caracteres. Qualquer tipo de valor pode ser convertido, incluindo objetos e matrizes.

Retornar valor

Uma cadeia de caracteres do valor convertido.

Exemplos

O seguinte exemplo 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 subcadeia de caraceteres que começa na posição do caractere especificado e contém o número especificado de caracteres.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
stringToParse Sim string A cadeia original da qual a subcadeia de caracteres é extraída.
startIndex Não INT A posição inicial do caractere baseada em zero para a subcadeia de caracteres.
comprimento Não INT O número de caracteres para a subcadeia de caracteres. Deve se referir a uma localização dentro da cadeia de caracteres. Deve ser zero ou maior. Se omitido, o restante da cadeia de caracteres da posição inicial será retornado.

Retornar valor

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

Comentários

A função falhará quando a subcadeia de caracteres ultrapassar o final da cadeia de caracteres, ou quando o comprimento for menor que zero. O exemplo a seguir falha com o erro “Os parâmetros de índice e de tamanho devem se referir a uma localização na cadeia de caracteres. O parâmetro de índice: '0', o parâmetro de comprimento: '11', o comprimento do parâmetro de cadeia de caracteres: '10'”.

param inputString string = '1234567890'

var prefix = substring(inputString, 0, 11)

Exemplos

O exemplo a seguir extrai uma subcadeia de caracteres 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 desde o início da cadeia de caracteres ou uma matriz com o número especificado de elementos desde o início da matriz.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
originalValue Sim matriz ou cadeia de caracteres A matriz ou cadeia de caracteres da qual extrair os elementos.
numberToTake Sim INT O número de elementos ou caracteres a ser extraído. Se esse valor for 0 ou menos, uma matriz ou cadeia de caracteres vazia será retornada. Se ele for maior que o tamanho da matriz ou da cadeia de caracteres especificada, todos os elementos da matriz ou da cadeia de caracteres serão retornados.

Retornar valor

Uma matriz ou cadeia de caracteres.

Exemplos

O exemplo a seguir extrai o número especificado de elementos da matriz e de 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 Array ["one", "two"]
stringOutput String on

toLower

toLower(stringToChange)

Converte a cadeia de caracteres especificada em letras minúsculas.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
stringToChange Sim string O valor a ser convertido em letras minúsculas.

Retornar valor

A cadeia de caracteres convertida em minúsculas.

Exemplos

O exemplo a seguir converte um valor de parâmetro em letras 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
toLowerOutput String um dois três
toUpperOutput String UM DOIS TRÊS

toUpper

toUpper(stringToChange)

Converte a cadeia de caracteres especificada em maiúsculas.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
stringToChange Sim string O valor a ser convertido em letras maiúsculas.

Retornar valor

A cadeia de caracteres convertida em maiúsculas.

Exemplos

O exemplo a seguir converte um valor de parâmetro em letras 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
toLowerOutput String um dois três
toUpperOutput String UM DOIS TRÊS

cortar

trim(stringToTrim)

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

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
stringToTrim Sim string O valor de corte.

Retornar valor

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

Exemplos

O exemplo a seguir remove 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
return String um dois três

uniqueString

uniqueString(baseString, ...)

Cria uma cadeia de caracteres de hash determinístico com base nos valores fornecidos como parâmetros.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
baseString Sim string O valor usado na função de hash para criar uma cadeia de caracteres exclusiva.
parâmetros extras 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.

Comentários

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

O valor retornado não é uma cadeia de caracteres aleatória, mas sim o resultado de uma função de hash. O valor retornado tem 13 caracteres. Ele não é globalmente exclusivo. Você talvez queira combinar o valor com um prefixo de sua convenção de nomenclatura para criar um nome significativo. O exemplo a seguir mostra o formato do valor retornado. O valor real poderá variar de acordo com os parâmetros fornecidos.

tcvhiyu5h2o5o

Os exemplos a seguir mostram como usar uniqueString para criar um valor exclusivo para níveis usados com mais frequência.

Escopo exclusivo para a assinatura

uniqueString(subscription().subscriptionId)

Escopo exclusivo para o grupo de recursos

uniqueString(resourceGroup().id)

Escopo exclusivo para a implantação de 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 em seu grupo de recursos. Dentro do grupo de recursos, o nome não será exclusivo se for construído da mesma maneira.

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

Se for necessário criar um nome exclusivo a cada implantação de arquivo Bicep e você não quiser atualizar o recurso, use a função utcNow com uniqueString. Você pode usar essa abordagem em um ambiente de teste. Para ver um exemplo, confira utcNow. Observe que a função utcNow só pode ser usada em uma expressão para o valor padrão de um parâmetro.

Retornar valor

Uma cadeia de caracteres que contém 13 caracteres.

Exemplos

O exemplo abaixo retorna os 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.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
baseUri Sim string Cadeia de caracteres do URI de base. Tome cuidado para observar o comportamento em relação ao manuseio da barra à direita ('/'), como descrito depois desta tabela.
relativeUri Sim string Cadeia de caracteres de uri relativo para adicionar a cadeia de caracteres do 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 em uma.

  • Se baseUri não terminar em uma barra final, uma de duas coisas acontece.

    • Se baseUri não tiver nenhuma barra (além do "//" próximo à frente), o resultado é simplesmente baseUri seguido por relativeUri.

    • Se baseUri tiver algumas barras, mas não terminar com uma barra, tudo, a partir da última barra, será removido e baseUri o resultado será baseUri seguido por relativeUri.

Estes são 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 retornado

Uma cadeia de caracteres que representa o URI absoluto dos valores base e relativos.

Exemplos

O seguinte exemplo 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.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
stringToEncode Sim string O valor a ser codificado.

Retornar valor

Uma cadeia de caracteres do valor codificado em URI.

Exemplos

O seguinte exemplo 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 em URI.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
uriEncodedString Sim string O valor codificado em URI a ser convertido em uma cadeia de caracteres.

Retornar valor

Uma cadeia de caracteres decodificada de valores codificados em URI.

Exemplos

O seguinte exemplo 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óximas etapas