Funções numéricas para modelos do ARM
O Resource Manager oferece as seguintes funções para trabalhar com inteiros 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 sobre como usar int
, min
e max
no Bicep, confira funções int
. Para outros valores numéricos, confira operadores numéricos.
add
add(operand1, operand2)
Retorna a soma dos dois inteiros fornecidos.
Não há suporte para a função add
no Bicep. Em vez disso, use o operador +
.
Parâmetros
Parâmetro | Obrigatório | Type | Descrição |
---|---|---|---|
operand1 | Sim | INT | Primeiro número a ser adicionado. |
operand2 | Sim | INT | Segundo número a ser adicionado. |
Retornar valor
Um inteiro que contém a soma dos parâmetros.
Exemplo
O exemplo a seguir adiciona dois parâmetros.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"first": {
"type": "int",
"defaultValue": 5,
"metadata": {
"description": "First integer to add"
}
},
"second": {
"type": "int",
"defaultValue": 3,
"metadata": {
"description": "Second integer to add"
}
}
},
"resources": [
],
"outputs": {
"addResult": {
"type": "int",
"value": "[add(parameters('first'), parameters('second'))]"
}
}
}
A saída do exemplo anterior com os valores padrão é:
Nome | Tipo | Valor |
---|---|---|
addResult | int | 8 |
copyIndex
copyIndex(loopName, offset)
Retorna o índice de um loop de iteração.
No Bicep, use loops iterativos.
Parâmetros
Parâmetro | Obrigatório | Type | Descrição |
---|---|---|---|
loopName | Não | string | O nome do loop para obter a iteração. |
deslocamento | Não | INT | O número a ser adicionado ao valor de iteração com base em zero. |
Comentários
Essa função é sempre usada com um objeto copy . Se nenhum valor for fornecido para offset, o valor de iteração atual retornará. O valor de iteração começa em zero.
A propriedade loopName permite que você especifique se copyIndex se refere a uma iteração de recursos ou a uma iteração de propriedade. Se nenhum valor for fornecido para loopName, a iteração de tipo de recurso atual será usada. Forneça um valor para loopName durante a iteração em uma propriedade.
Para obter mais informações sobre o uso da cópia, confira:
- Iteração de recursos em modelos do ARM
- Iteração de propriedade em modelos ARM
- Iteração de variável em modelos do ARM
- Iteração de saídas em modelos do ARM
Exemplo
O exemplo a seguir mostra um loop de cópia e o valor de índice incluído no nome.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageCount": {
"type": "int",
"defaultValue": 2
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2022-09-01",
"name": "[format('{0}storage{1}', range(0, parameters('storageCount'))[copyIndex()], uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"properties": {},
"copy": {
"name": "storagecopy",
"count": "[parameters('storageCount')]"
}
}
]
}
Retornar valor
Um inteiro que representa o índice atual da iteração.
div
div(operand1, operand2)
Retorna a divisão de inteiros dos dois inteiros fornecidos.
Não há suporte para a função div
no Bicep. Em vez disso, use o operador /
.
Parâmetros
Parâmetro | Obrigatório | Type | Descrição |
---|---|---|---|
operand1 | Sim | INT | O número que está sendo dividido. |
operand2 | Sim | INT | O número usado para dividir. Ele não pode ser 0. |
Retornar valor
Um inteiro que representa a divisão.
Exemplo
O exemplo a seguir divide um parâmetro por outro parâmetro.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"first": {
"type": "int",
"defaultValue": 8,
"metadata": {
"description": "Integer being divided"
}
},
"second": {
"type": "int",
"defaultValue": 3,
"metadata": {
"description": "Integer used to divide"
}
}
},
"resources": [
],
"outputs": {
"divResult": {
"type": "int",
"value": "[div(parameters('first'), parameters('second'))]"
}
}
}
A saída do exemplo anterior com os valores padrão é:
Nome | Tipo | Valor |
---|---|---|
divResult | int | 2 |
FLOAT
float(arg1)
Converte o valor em um número de ponto flutuante. Você só usa essa função ao passar parâmetros personalizados para um aplicativo, como um aplicativo lógico.
Não há suporte para a função float
no Bicep.
Parâmetros
Parâmetro | Obrigatório | Type | Descrição |
---|---|---|---|
arg1 | Sim | cadeia de caracteres ou inteiro | O valor a ser convertido em um número de ponto flutuante. |
Retornar valor
Um número de ponto flutuante.
Exemplo
O exemplo a seguir mostra como usar float para passar parâmetros para um aplicativo lógico:
{
"type": "Microsoft.Logic/workflows",
"properties": {
...
"parameters": {
"custom1": {
"value": "[float('3.0')]"
},
"custom2": {
"value": "[float(3)]"
},
INT
int(valueToConvert)
Converte o valor especificado em um inteiro.
No Bicep, use a função int.
Parâmetros
Parâmetro | Obrigatório | Type | Descrição |
---|---|---|---|
valueToConvert | Sim | cadeia de caracteres ou inteiro | O valor a ser convertido em um inteiro. |
Retornar valor
Um inteiro do valor convertido.
Exemplo
O modelo de exemplo a seguir converte o valor do parâmetro fornecido pelo usuário em inteiro.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"stringToConvert": {
"type": "string",
"defaultValue": "4"
}
},
"resources": [
],
"outputs": {
"intResult": {
"type": "int",
"value": "[int(parameters('stringToConvert'))]"
}
}
}
A saída do exemplo anterior com os valores padrão é:
Nome | Tipo | Valor |
---|---|---|
intResult | int | 4 |
max
max(arg1)
Retorna o valor máximo de uma matriz de inteiros ou uma lista de inteiros separados por vírgulas.
No bicep, use a função max.
Parâmetros
Parâmetro | Obrigatório | Type | Descrição |
---|---|---|---|
arg1 | Sim | matriz de inteiros ou lista de inteiros separados por vírgulas | A coleção para obtenção do valor máximo. |
Retornar valor
Um inteiro que representa o valor máximo da coleção.
Exemplo
O seguinte exemplo mostra como usar max com uma matriz e uma lista de inteiros.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"arrayToTest": {
"type": "array",
"defaultValue": [ 0, 3, 2, 5, 4 ]
}
},
"resources": [],
"outputs": {
"arrayOutput": {
"type": "int",
"value": "[max(parameters('arrayToTest'))]"
},
"intOutput": {
"type": "int",
"value": "[max(0,3,2,5,4)]"
}
}
}
A saída do exemplo anterior com os valores padrão é:
Nome | Tipo | Valor |
---|---|---|
arrayOutput | int | 5 |
intOutput | int | 5 |
min
min(arg1)
Retorna o valor mínimo de uma matriz de inteiros ou uma lista de inteiros separados por vírgulas.
No bicep, use a função min.
Parâmetros
Parâmetro | Obrigatório | Type | Descrição |
---|---|---|---|
arg1 | Sim | matriz de inteiros ou lista de inteiros separados por vírgulas | A coleção para obtenção do valor mínimo. |
Retornar valor
Um inteiro que representa o valor mínimo da coleção.
Exemplo
O seguinte exemplo mostra como usar min com uma matriz e uma lista de inteiros.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"arrayToTest": {
"type": "array",
"defaultValue": [ 0, 3, 2, 5, 4 ]
}
},
"resources": [],
"outputs": {
"arrayOutput": {
"type": "int",
"value": "[min(parameters('arrayToTest'))]"
},
"intOutput": {
"type": "int",
"value": "[min(0,3,2,5,4)]"
}
}
}
A saída do exemplo anterior com os valores padrão é:
Nome | Tipo | Valor |
---|---|---|
arrayOutput | int | 0 |
intOutput | int | 0 |
mod
mod(operand1, operand2)
Retorna o restante da divisão de inteiros usando os dois inteiros fornecidos.
Não há suporte para a função mod
no Bicep. Em vez disso, use o operador %.
Parâmetros
Parâmetro | Obrigatório | Type | Descrição |
---|---|---|---|
operand1 | Sim | INT | O número que está sendo dividido. |
operand2 | Sim | INT | O número usado para dividir. Não pode ser 0. |
Retornar valor
Um inteiro que representa o resto.
Exemplo
O exemplo a seguir retorna o resto da divisão de um parâmetro por outro parâmetro.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"first": {
"type": "int",
"defaultValue": 7,
"metadata": {
"description": "Integer being divided"
}
},
"second": {
"type": "int",
"defaultValue": 3,
"metadata": {
"description": "Integer used to divide"
}
}
},
"resources": [
],
"outputs": {
"modResult": {
"type": "int",
"value": "[mod(parameters('first'), parameters('second'))]"
}
}
}
A saída do exemplo anterior com os valores padrão é:
Nome | Tipo | Valor |
---|---|---|
modResult | int | 1 |
mul
mul(operand1, operand2)
Retorna a multiplicação de dois inteiros fornecidos.
Não há suporte para a função mul
no Bicep. Em vez disso, use o operador *.
Parâmetros
Parâmetro | Obrigatório | Type | Descrição |
---|---|---|---|
operand1 | Sim | INT | Primeiro número a ser multiplicado. |
operand2 | Sim | INT | Segundo número a ser multiplicado. |
Retornar valor
Um inteiro que representa a multiplicação.
Exemplo
O exemplo a seguir multiplica um parâmetro por outro parâmetro.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"first": {
"type": "int",
"defaultValue": 5,
"metadata": {
"description": "First integer to multiply"
}
},
"second": {
"type": "int",
"defaultValue": 3,
"metadata": {
"description": "Second integer to multiply"
}
}
},
"resources": [
],
"outputs": {
"mulResult": {
"type": "int",
"value": "[mul(mul(parameters('first'), parameters('second')), 3)]"
}
}
}
A saída do exemplo anterior com os valores padrão é:
Nome | Tipo | Valor |
---|---|---|
mulResult | int | 45 |
sub
sub(operand1, operand2)
Retorna a subtração dos dois inteiros fornecidos.
Não há suporte para a função sub
no Bicep. Use o operador – em vez disso.
Parâmetros
Parâmetro | Obrigatório | Type | Descrição |
---|---|---|---|
operand1 | Sim | INT | O número do qual é subtraído. |
operand2 | Sim | INT | O número subtraído. |
Retornar valor
Um inteiro que representa a subtração.
Exemplo
O exemplo a seguir subtrai um parâmetro de outro parâmetro.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"first": {
"type": "int",
"defaultValue": 7,
"metadata": {
"description": "Integer subtracted from"
}
},
"second": {
"type": "int",
"defaultValue": 3,
"metadata": {
"description": "Integer to subtract"
}
}
},
"resources": [
],
"outputs": {
"subResult": {
"type": "int",
"value": "[sub(parameters('first'), parameters('second'))]"
}
}
}
A saída do exemplo anterior com os valores padrão é:
Nome | Tipo | Valor |
---|---|---|
subResult | int | 4 |
Próximas etapas
- Para obter uma descrição das seções de um modelo do ARM, confira Entender a estrutura e a sintaxe dos modelos do ARM.
- Para iterar um número especificado de vezes ao criar um tipo de recurso, confira Iteração de recursos em modelos do ARM.