Funções de cadeia de caracteres para modelos do ARM

O Resource Manager oferece as seguintes funções para trabalhar com cadeias de caracteres no seu modelo do ARM (Azure Resource Manager):

Dica

Recomendamos o Bicep porque ele oferece as mesmas funcionalidades que os modelos do ARM e a sintaxe é mais fácil de usar. Para saber mais, confira funções de cadeia de caracteres.

base64

base64(inputString)

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

No Bicep, use a função base64.

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.

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

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.

No Bicep, use a função base64ToJson.

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:

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

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.

No Bicep, use a função base64ToString.

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:

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

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.

No Bicep, use a interpolação de cadeia de caracteres em vez da função concat() para melhorar a legibilidade. 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().

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 como combinar dois valores de cadeia de caracteres e retornar uma cadeia de caracteres concatenada.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "prefix": {
      "type": "string",
      "defaultValue": "prefix"
    }
  },
  "resources": [],
  "outputs": {
    "concatOutput": {
      "type": "string",
      "value": "[concat(parameters('prefix'), '-', uniqueString(resourceGroup().id))]"
    }
  }
}

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

Nome Tipo Valor
concatOutput String prefix-5yj4yjf5mbg72

O próximo exemplo mostra como combinar duas matrizes.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "firstArray": {
      "type": "array",
      "defaultValue": [
        "1-1",
        "1-2",
        "1-3"
      ]
    },
    "secondArray": {
      "type": "array",
      "defaultValue": [
        "2-1",
        "2-2",
        "2-3"
      ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "return": {
      "type": "array",
      "value": "[concat(parameters('firstArray'), parameters('secondArray'))]"
    }
  }
}

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

Nome Tipo Valor
return Array ["1-1", "1-2", "1-3", "2-1", "2-2", "2-3"]

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.

No Bicep, use a função contains.

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.

Retornar valor

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

Exemplos

O seguinte exemplo mostra como usar contains com tipos diferentes:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "stringToTest": {
      "type": "string",
      "defaultValue": "OneTwoThree"
    },
    "objectToTest": {
      "type": "object",
      "defaultValue": {
        "one": "a",
        "two": "b",
        "three": "c"
      }
    },
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "stringTrue": {
      "type": "bool",
      "value": "[contains(parameters('stringToTest'), 'e')]"
    },
    "stringFalse": {
      "type": "bool",
      "value": "[contains(parameters('stringToTest'), 'z')]"
    },
    "objectTrue": {
      "type": "bool",
      "value": "[contains(parameters('objectToTest'), 'one')]"
    },
    "objectFalse": {
      "type": "bool",
      "value": "[contains(parameters('objectToTest'), 'a')]"
    },
    "arrayTrue": {
      "type": "bool",
      "value": "[contains(parameters('arrayToTest'), 'three')]"
    },
    "arrayFalse": {
      "type": "bool",
      "value": "[contains(parameters('arrayToTest'), 'four')]"
    }
  }
}

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.

No Bicep, use a função dataUri.

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.

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

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.

No Bicep, use a função dataUriToString.

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 modelo de exemplo a seguir converte um valor em um URI de dados e um URI de dados em uma cadeia de caracteres.

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

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!

vazio

empty(itemToTest)

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

No Bicep, use a função empty.

Parâmetros

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

Retornar valor

Retorna True se o valor é vazio; caso contrário, False.

Exemplos

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

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testArray": {
      "type": "array",
      "defaultValue": []
    },
    "testObject": {
      "type": "object",
      "defaultValue": {}
    },
    "testString": {
      "type": "string",
      "defaultValue": ""
    }
  },
  "resources": [
  ],
  "outputs": {
    "arrayEmpty": {
      "type": "bool",
      "value": "[empty(parameters('testArray'))]"
    },
    "objectEmpty": {
      "type": "bool",
      "value": "[empty(parameters('testObject'))]"
    },
    "stringEmpty": {
      "type": "bool",
      "value": "[empty(parameters('testString'))]"
    }
  }
}

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

Nome Tipo Valor
arrayEmpty Bool True
objectEmpty Bool True
stringEmpty 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.

No Bicep, use a função endsWith.

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

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

Exemplos

O exemplo a seguir mostra como usar as funções startsWith e endsWith:

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

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.

No Bicep, use a função first.

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.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "arrayOutput": {
      "type": "string",
      "value": "[first(parameters('arrayToTest'))]"
    },
    "stringOutput": {
      "type": "string",
      "value": "[first('One Two Three')]"
    }
  }
}

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.

No Bicep, use a função format.

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.
mais argumentos 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 seu modelo. 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.

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

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

Nome Tipo Valor
formatTest String Olá, usuário. Número formatado: 8,175,133

guid

guid(baseString, ...)

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

No Bicep, use a função guid.

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.

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 de guid:

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

indexOf

indexOf(stringToSearch, stringToFind)

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

No Bicep, use a função IndexOf.

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

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

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.

No Bicep, use a função join.

Parâmetros

Parâmetro Obrigatório Type Descrição
inputArray Yes matriz de cadeias de caracteres Uma matriz de cadeias de caracteres a serem unidas.
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 usando delimitadores diferentes.

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

O resultado do exemplo anterior é:

Nome Tipo Valor
firstOutput String "one,two,three"
secondOutput String "one;two;three"

json

json(arg1)

Converte uma cadeia de caracteres JSON válida em um tipo de dados JSON. Para saber mais, confira função json.

No Bicep, use a função json.

last

last(arg1)

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

No Bicep, use a função last.

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 last com uma matriz e cadeia de caracteres.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "arrayToTest": {
      "type": "array",
      "defaultValue": [ "one", "two", "three" ]
    }
  },
  "resources": [
  ],
  "outputs": {
    "arrayOutput": {
      "type": "string",
      "value": "[last(parameters('arrayToTest'))]"
    },
    "stringOutput": {
      "type": "string",
      "value": "[last('One Two Three')]"
    }
  }
}

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.

No Bicep, use a função lastIndexOf.

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:

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

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.

No Bicep, use a função length.

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 exemplo a seguir mostra como usar a última função length com uma matriz e cadeia de caracteres:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "arrayToTest": {
      "type": "array",
      "defaultValue": [
        "one",
        "two",
        "three"
      ]
    },
    "stringToTest": {
      "type": "string",
      "defaultValue": "One Two Three"
    },
    "objectToTest": {
      "type": "object",
      "defaultValue": {
        "propA": "one",
        "propB": "two",
        "propC": "three",
        "propD": {
          "propD-1": "sub",
          "propD-2": "sub"
        }
      }
    }
  },
  "resources": [],
  "outputs": {
    "arrayLength": {
      "type": "int",
      "value": "[length(parameters('arrayToTest'))]"
    },
    "stringLength": {
      "type": "int",
      "value": "[length(parameters('stringToTest'))]"
    },
    "objectLength": {
      "type": "int",
      "value": "[length(parameters('objectToTest'))]"
    }
  }
}

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.

No Bicep, use a função newGuid.

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 modelo retorna um erro. A função não é permitida em outras partes do modelo porque ela retorna um valor diferente cada vez que é chamada. Implantar o mesmo modelo 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 o mesmo parâmetro, 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 modelo que depende 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.

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

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 modelo pode funcionar para o ambiente de teste onde a conta de armazenamento existe por um curto período e não é reimplantada.

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

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.

No Bicep, use a função PadLeft.

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.

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

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.

No Bicep, use a função replace.

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.

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

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.

No Bicep, use a função skip.

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.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testArray": {
      "type": "array",
      "defaultValue": [
        "one",
        "two",
        "three"
      ]
    },
    "elementsToSkip": {
      "type": "int",
      "defaultValue": 2
    },
    "testString": {
      "type": "string",
      "defaultValue": "one two three"
    },
    "charactersToSkip": {
      "type": "int",
      "defaultValue": 4
    }
  },
  "resources": [],
  "outputs": {
    "arrayOutput": {
      "type": "array",
      "value": "[skip(parameters('testArray'),parameters('elementsToSkip'))]"
    },
    "stringOutput": {
      "type": "string",
      "value": "[skip(parameters('testString'),parameters('charactersToSkip'))]"
    }
  }
}

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.

No Bicep, use a função split.

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.

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

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.

No Bicep, use a função startsWith.

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

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

Exemplos

O exemplo a seguir mostra como usar as funções startsWith e endsWith:

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

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.

No Bicep, use a função cadeia de caracteres.

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:

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

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

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.

No Bicep, use a função substring.

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

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

Exemplos

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

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

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

Nome Tipo Valor
substringOutput String dois

take

take(originalValue, numberToTake)

Retorna uma matriz de cadeias de caracteres. Uma matriz com o número especificado de elementos desde o início da matriz. Uma cadeia de caracteres com o número especificado de caracteres no início da cadeia.

No Bicep, use a função take.

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.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "testArray": {
      "type": "array",
      "defaultValue": [
        "one",
        "two",
        "three"
      ]
    },
    "elementsToTake": {
      "type": "int",
      "defaultValue": 2
    },
    "testString": {
      "type": "string",
      "defaultValue": "one two three"
    },
    "charactersToTake": {
      "type": "int",
      "defaultValue": 2
    }
  },
  "resources": [],
  "outputs": {
    "arrayOutput": {
      "type": "array",
      "value": "[take(parameters('testArray'),parameters('elementsToTake'))]"
    },
    "stringOutput": {
      "type": "string",
      "value": "[take(parameters('testString'),parameters('charactersToTake'))]"
    }
  }
}

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.

No Bicep, use a função toLower.

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.

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

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.

No Bicep, use a função toUpper.

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.

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

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.

No Bicep, use a função trim.

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.

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

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.

No Bicep, use a função uniqueString.

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 mostrarão de que modo usar o uniqueString a fim de 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.

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

Caso precise criar um nome exclusivo sempre que implantar um modelo e não pretenda atualizar o recurso, será possível usar a função utcNow com uniqueString. Você pode usar essa abordagem em um ambiente de teste. Para ver um exemplo, confira utcNow.

Retornar valor

Uma cadeia de caracteres que contém 13 caracteres.

Exemplos

O exemplo a seguir retorna os resultados de uniquestring:

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

uri

uri(baseUri, relativeUri)

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

No Bicep, use a função uri.

Parâmetros

Parâmetro Obrigatório Type Descrição
baseUri Sim string Cadeia de caracteres do URI de base. Observe com cuidado o comportamento em relação ao manuseio da barra à direita (/), conforme descrito após esta 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 será baseUri seguido por relativeUri.

  • Se baseUri não terminar com uma barra à direita, uma de duas coisas ocorrerá.

    • Caso baseUri não tenha barras (além de // próximas ao início), o resultado será o baseUri seguido por relativeUri.

    • Se baseUri tiver algumas barras, mas não terminar com uma barra, tudo o que estiver da última barra em diante será removido do baseUri e 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/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 ver todos os detalhes, os parâmetros baseUri e relativeUri são resolvidos como especificado na RFC 3986, seção 5.

Retornar valor

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

Exemplos

O exemplo a seguir mostra como criar um link para um modelo aninhado com base no valor do modelo pai.

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

O modelo de exemplo a seguir mostra como usar a uri, uriComponent e uriComponentToString.

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

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.

No Bicep, use a função uriComponent.

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 modelo de exemplo a seguir mostra como usar a uri, uriComponent e uriComponentToString.

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

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.

No Bicep, use a função uriComponentToString.

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 exemplo a seguir mostra como usar o uri, uriComponent e uriComponentToString.

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

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