Partilhar via


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

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