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, mine 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:

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