Compartilhar via


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:

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