Funções numéricas para modelos ARM
O Resource Manager fornece as seguintes funções para trabalhar com inteiros no seu modelo do Azure Resource Manager (modelo ARM):
Gorjeta
Recomendamos o Bicep porque ele oferece os mesmos recursos que os modelos ARM e a sintaxe é mais fácil de usar. Para saber mais sobre como usar int
o , min
e max
no Bicep, consulte Funções numéricas . Para outros valores numéricos, consulte operadores numéricos .
adicionar
add(operand1, operand2)
Devolve a soma dos dois números inteiros indicados.
A add
função não é suportada no Bicep. Em vez disso, use o +
operador .
Parâmetros
Parâmetro | Necessário | Type | Description |
---|---|---|---|
operando1 | Sim | número inteiro | Primeiro número a adicionar. |
operando2 | Sim | número inteiro | Segundo número a adicionar. |
Valor devolvido
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 [en]
copyIndex(loopName, offset)
Retorna o índice de um loop de iteração.
No Bicep, use loops iterativos.
Parâmetros
Parâmetro | Necessário | Type | Description |
---|---|---|---|
Nome do loop | Não | string | O nome do loop para obter a iteração. |
offset | Não | número inteiro | O número a ser adicionado ao valor de iteração baseado em zero. |
Observações
Esta função é sempre usada com um objeto copy . Se nenhum valor for fornecido para deslocamento, o valor da iteração atual será retornado. O valor da iteração começa em zero.
A propriedade loopName permite especificar se copyIndex está se referindo a uma iteração de recurso ou 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 ao iterar em uma propriedade.
Para obter mais informações sobre como usar a cópia, consulte:
- Iteração de recursos em modelos ARM
- Iteração de propriedade em modelos ARM
- Iteração variável em modelos ARM
- Iteração de saída em modelos 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')]"
}
}
]
}
Valor devolvido
Um inteiro que representa o índice atual da iteração.
div
div(operand1, operand2)
Retorna a divisão inteira dos dois inteiros fornecidos.
A div
função não é suportada no Bicep. Em vez disso, use o /
operador .
Parâmetros
Parâmetro | Necessário | Type | Description |
---|---|---|---|
operando1 | Sim | número inteiro | O número que está sendo dividido. |
operando2 | Sim | número inteiro | O número que é usado para dividir. Não pode ser 0. |
Valor devolvido
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 |
---|---|---|
divResultado | Int | 2 |
flutuante
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.
A float
função não é suportada no Bicep.
Parâmetros
Parâmetro | Necessário | Type | Description |
---|---|---|---|
Arg1 | Sim | string ou int | O valor a ser convertido em um número de ponto flutuante. |
Valor devolvido
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)]"
},
número inteiro
int(valueToConvert)
Converte o valor especificado em um inteiro.
No Bicep, use a função int .
Parâmetros
Parâmetro | Necessário | Type | Description |
---|---|---|---|
valueToConvert | Sim | string ou int | O valor a ser convertido em um inteiro. |
Valor devolvido
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)
Devolve o valor máximo de uma matriz de inteiros ou de uma lista de inteiros separada por vírgula.
No Bicep, utilize a função max .
Parâmetros
Parâmetro | Necessário | Type | Description |
---|---|---|---|
Arg1 | Sim | matriz de inteiros ou lista de inteiros separados por vírgulas | A coleção para obter o valor máximo. |
Valor devolvido
Um inteiro que representa o valor máximo da coleção.
Exemplo
O exemplo a seguir 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)
Devolve o valor mínimo de uma matriz de inteiros ou de uma lista de inteiros separada por vírgula.
No Bicep, use a função min .
Parâmetros
Parâmetro | Necessário | Type | Description |
---|---|---|---|
Arg1 | Sim | matriz de inteiros ou lista de inteiros separados por vírgulas | A coleção para obter o valor mínimo. |
Valor devolvido
Um inteiro que representa o valor mínimo da coleção.
Exemplo
O exemplo a seguir 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 inteira usando os dois inteiros fornecidos.
A mod
função não é suportada no Bicep. Em vez disso, use o operador %.
Parâmetros
Parâmetro | Necessário | Type | Description |
---|---|---|---|
operando1 | Sim | número inteiro | O número que está sendo dividido. |
operando2 | Sim | número inteiro | O número que é usado para dividir, não pode ser 0. |
Valor devolvido
Um inteiro que representa o restante.
Exemplo
O exemplo a seguir retorna o restante 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 |
---|---|---|
modResultado | Int | 1 |
Mul
mul(operand1, operand2)
Devolve a multiplicação dos dois inteiros fornecidos.
A mul
função não é suportada no Bicep. Em vez disso, use o operador *.
Parâmetros
Parâmetro | Necessário | Type | Description |
---|---|---|---|
operando1 | Sim | número inteiro | Primeiro número a multiplicar. |
operando2 | Sim | número inteiro | Segundo número a multiplicar. |
Valor devolvido
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 |
---|---|---|
mulResultado | Int | 45 |
sub
sub(operand1, operand2)
Devolve a subtração dos dois inteiros fornecidos.
A sub
função não é suportada no Bicep. Em vez disso, use o operador - .
Parâmetros
Parâmetro | Necessário | Type | Description |
---|---|---|---|
operando1 | Sim | número inteiro | O número que é subtraído. |
operando2 | Sim | número inteiro | O número que é subtraído. |
Valor devolvido
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 |
---|---|---|
subResultado | Int | 4 |
Próximos passos
- Para obter uma descrição das seções em um modelo ARM, consulte Compreender a estrutura e a sintaxe dos modelos ARM.
- Para iterar um número especificado de vezes ao criar um tipo de recurso, consulte Iteração de recurso em modelos ARM.