Funções numéricas para modelos do ARM
Resource Manager fornece as seguintes funções para trabalhar com números inteiros no modelo de Resource Manager do Azure (modelo arm):
Dica
Recomendamos o Bicep porque oferece as mesmas capacidades que os modelos do ARM e a sintaxe é mais fácil de utilizar. Para saber mais sobre como utilizar int
, min
e max
no Bicep, veja funções numéricas . Para outros valores numéricos, veja operadores numéricos .
adicionar
add(operand1, operand2)
Devolve a soma dos dois números inteiros fornecidos.
A add
função não é suportada no Bicep. Em alternativa, utilize o +
operador .
Parâmetros
Parâmetro | Necessário | Tipo | Description |
---|---|---|---|
operand1 | Yes | int | Primeiro número a adicionar. |
operand2 | Yes | int | Segundo número a adicionar. |
Valor devolvido
Um número inteiro que contém a soma dos parâmetros.
Exemplo
O exemplo seguinte 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'))]"
}
}
}
O resultado do exemplo anterior com os valores predefinidos é:
Nome | Tipo | Valor |
---|---|---|
addResult | int | 8 |
copyIndex
copyIndex(loopName, offset)
Devolve o índice de um ciclo de iteração.
No Bicep, utilize ciclos iterativos.
Parâmetros
Parâmetro | Necessário | Tipo | Description |
---|---|---|---|
loopName | No | string | O nome do ciclo para obter a iteração. |
offset | No | int | O número a adicionar ao valor de iteração baseado em zero. |
Observações
Esta função é sempre utilizada com um objeto de cópia . Se não for fornecido nenhum valor para desvio, é devolvido o valor de iteração atual. O valor de iteração começa em zero.
A propriedade loopName permite-lhe especificar se copyIndex está a referir-se a uma iteração de recursos ou iteração de propriedade. Se não for fornecido nenhum valor para loopName, é utilizada a iteração do tipo de recurso atual. Forneça um valor para loopName ao iterar numa propriedade.
Para obter mais informações sobre como utilizar a cópia, consulte:
- Iteração de recursos em modelos do ARM
- Iteração de propriedades em modelos do ARM
- Iteração variável em modelos do ARM
- Iteração de saída em modelos do ARM
Exemplo
O exemplo seguinte mostra um ciclo de cópia e o valor do í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')]"
}
}
]
}
Valor devolvido
Um número inteiro que representa o índice atual da iteração.
div
div(operand1, operand2)
Devolve a divisão de números inteiros dos dois números inteiros fornecidos.
A div
função não é suportada no Bicep. Em alternativa, utilize o /
operador .
Parâmetros
Parâmetro | Necessário | Tipo | Description |
---|---|---|---|
operand1 | Yes | int | O número que está a ser dividido. |
operand2 | Yes | int | O número que é utilizado para dividir. Não pode ser 0. |
Valor devolvido
Um número inteiro que representa a divisão.
Exemplo
O exemplo seguinte 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'))]"
}
}
}
O resultado do exemplo anterior com os valores predefinidos é:
Nome | Tipo | Valor |
---|---|---|
divResult | int | 2 |
float
float(arg1)
Converte o valor num número de vírgula flutuante. Só utiliza esta função ao transmitir parâmetros personalizados para uma aplicação, como uma Aplicação Lógica.
A float
função não é suportada no Bicep.
Parâmetros
Parâmetro | Necessário | Tipo | Description |
---|---|---|---|
arg1 | Yes | cadeia ou int | O valor a converter num número de vírgula flutuante. |
Valor devolvido
Um número de vírgula flutuante.
Exemplo
O exemplo seguinte mostra como utilizar o float para transmitir parâmetros para uma Aplicação Lógica:
{
"type": "Microsoft.Logic/workflows",
"properties": {
...
"parameters": {
"custom1": {
"value": "[float('3.0')]"
},
"custom2": {
"value": "[float(3)]"
},
int
int(valueToConvert)
Converte o valor especificado num número inteiro.
No Bicep, utilize a função int .
Parâmetros
Parâmetro | Necessário | Tipo | Description |
---|---|---|---|
valueToConvert | Yes | cadeia ou int | O valor a converter num número inteiro. |
Valor devolvido
Um número inteiro do valor convertido.
Exemplo
O modelo de exemplo seguinte converte o valor do parâmetro fornecido pelo utilizador em número 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'))]"
}
}
}
O resultado do exemplo anterior com os valores predefinidos é:
Nome | Tipo | Valor |
---|---|---|
intResult | int | 4 |
max
max(arg1)
Devolve o valor máximo de uma matriz de números inteiros ou de uma lista separada por vírgulas de números inteiros.
No Bicep, utilize a função máxima .
Parâmetros
Parâmetro | Necessário | Tipo | Description |
---|---|---|---|
arg1 | Yes | matriz de números inteiros ou lista separada por vírgulas de números inteiros | A coleção para obter o valor máximo. |
Valor devolvido
Um número inteiro que representa o valor máximo da coleção.
Exemplo
O exemplo seguinte mostra como utilizar o máximo com uma matriz e uma lista de números 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)]"
}
}
}
O resultado do exemplo anterior com os valores predefinidos é:
Nome | Tipo | Valor |
---|---|---|
arrayOutput | int | 5 |
intOutput | int | 5 |
min
min(arg1)
Devolve o valor mínimo de uma matriz de números inteiros ou de uma lista separada por vírgulas de números inteiros.
No Bicep, utilize a função min .
Parâmetros
Parâmetro | Necessário | Tipo | Description |
---|---|---|---|
arg1 | Yes | matriz de números inteiros ou lista separada por vírgulas de números inteiros | A coleção para obter o valor mínimo. |
Valor devolvido
Um número inteiro que representa o valor mínimo da coleção.
Exemplo
O exemplo seguinte mostra como utilizar min com uma matriz e uma lista de números 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)]"
}
}
}
O resultado do exemplo anterior com os valores predefinidos é:
Nome | Tipo | Valor |
---|---|---|
arrayOutput | int | 0 |
intOutput | int | 0 |
mod
mod(operand1, operand2)
Devolve o resto da divisão de números inteiros com os dois números inteiros fornecidos.
A mod
função não é suportada no Bicep. Em alternativa, utilize o operador % .
Parâmetros
Parâmetro | Necessário | Tipo | Description |
---|---|---|---|
operand1 | Yes | int | O número que está a ser dividido. |
operand2 | Yes | int | O número que é utilizado para dividir, Não pode ser 0. |
Valor devolvido
Um número inteiro que representa o resto.
Exemplo
O exemplo seguinte devolve 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'))]"
}
}
}
O resultado do exemplo anterior com os valores predefinidos é:
Nome | Tipo | Valor |
---|---|---|
modResult | int | 1 |
mula
mul(operand1, operand2)
Devolve a multiplicação dos dois números inteiros fornecidos.
A mul
função não é suportada no Bicep. Em alternativa, utilize o operador * .
Parâmetros
Parâmetro | Necessário | Tipo | Description |
---|---|---|---|
operand1 | Yes | int | Primeiro número a multiplicar. |
operand2 | Yes | int | Segundo número a multiplicar. |
Valor devolvido
Um número inteiro que representa a multiplicação.
Exemplo
O exemplo seguinte 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)]"
}
}
}
O resultado do exemplo anterior com os valores predefinidos é:
Nome | Tipo | Valor |
---|---|---|
mulResult | int | 45 |
sub
sub(operand1, operand2)
Devolve a subtração dos dois números inteiros fornecidos.
A sub
função não é suportada no Bicep. Em vez disso, utilize o operador -
Parâmetros
Parâmetro | Necessário | Tipo | Description |
---|---|---|---|
operand1 | Yes | int | O número que é subtraído. |
operand2 | Yes | int | O número que é subtraído. |
Valor devolvido
Um número inteiro que representa a subtração.
Exemplo
O exemplo seguinte 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'))]"
}
}
}
O resultado do exemplo anterior com os valores predefinidos é:
Nome | Tipo | Valor |
---|---|---|
subResult | int | 4 |
Passos seguintes
- Para obter uma descrição das secções num modelo do ARM, veja Compreender a estrutura e a sintaxe dos modelos do ARM.
- Para iterar um número especificado de vezes ao criar um tipo de recurso, veja Iteração de recursos em modelos do ARM.