Fonctions numériques pour les modèles ARM

Resource Manager fournit les fonctions ci-après pour travailler avec des entiers dans votre modèle Azure Resource Manager (modèle ARM) :

Conseil

Nous recommandons Bicep parce qu’il offre les mêmes fonctionnalités que les modèles ARM et que la syntaxe est plus facile d’utilisation. Pour en savoir plus sur l’utilisation de int, min et max dans Bicep, consultez les fonctions int. Pour les autres valeurs numériques, consultez les opérateurs numériques.

add

add(operand1, operand2)

Retourne la somme des deux entiers fournis.

La fonction add n’est pas prise en charge dans Bicep. Utilisez plutôt l’opérateur .

Paramètres

Paramètre Obligatoire Type Description
operand1 Oui int Premier nombre à ajouter.
operand2 Oui int Deuxième nombre à ajouter.

Valeur de retour

Entier qui contient la somme des paramètres.

Exemple

L’exemple suivant ajoute deux paramètres.

{
  "$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'))]"
    }
  }
}

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
addResult Int 8

copyIndex

copyIndex(loopName, offset)

Retourne l’index d’une boucle d’itération.

Dans Bicep, utilisez des boucles itératives.

Paramètres

Paramètre Obligatoire Type Description
loopName Non string Nom de la boucle pour l’obtention de l’itération.
offset Non int Le nombre à ajouter à la valeur d’itération de base zéro.

Remarques

Cette fonction est toujours utilisée avec un objet copy . Si aucune valeur n’est fournie pour offset, la valeur d’itération actuelle est retournée. La valeur d’itération commence à zéro.

La propriété loopName permet d’indiquer si copyIndex fait référence à une itération de ressource ou de propriété. Si aucune valeur n’est indiquée pour loopName, l’itération du type de ressource actuelle est utilisée. Indiquez une valeur pour loopName lors de l’itération sur une propriété.

Pour plus d’informations sur l’utilisation de copy, voir :

Exemple

L’exemple suivant montre une boucle de copie ainsi que la valeur d’index incluse dans le nom.

{
  "$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')]"
      }
    }
  ]
}

Valeur de retour

Entier représentant l’index actuel de l’itération.

div

div(operand1, operand2)

Retourne la division entière des deux entiers fournis.

La fonction div n’est pas prise en charge dans Bicep. Utilisez plutôt l’opérateur .

Paramètres

Paramètre Obligatoire Type Description
operand1 Oui int Le nombre à diviser.
operand2 Oui int Le nombre utilisé pour diviser. Ne peut pas être 0.

Valeur de retour

Entier représentant la division.

Exemple

L’exemple suivant divise un paramètre par un autre paramètre.

{
  "$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'))]"
    }
  }
}

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
divResult Int 2

float

float(arg1)

Convertit la valeur en nombre à virgule flottante. Vous utilisez uniquement cette fonction lors de la transmission de paramètres personnalisés à une application, telle qu’une application logique.

La fonction float n’est pas prise en charge dans Bicep.

Paramètres

Paramètre Obligatoire Type Description
arg1 Oui chaîne ou entier Valeur à convertir en nombre à virgule flottante.

Valeur de retour

Nombre à virgule flottante.

Exemple

L’exemple suivant montre comment utiliser float pour passer des paramètres à une application logique :

{
  "type": "Microsoft.Logic/workflows",
  "properties": {
    ...
    "parameters": {
      "custom1": {
        "value": "[float('3.0')]"
      },
      "custom2": {
        "value": "[float(3)]"
      },

int

int(valueToConvert)

Convertit la valeur spécifiée en entier.

Dans Bicep, utilisez la fonction int.

Paramètres

Paramètre Obligatoire Type Description
valueToConvert Oui chaîne ou entier La valeur à convertir en entier.

Valeur de retour

Nombre entier de la valeur convertie.

Exemple

Dans l’exemple de modèle suivant, vous convertissez la valeur de paramètre fournie par l’utilisateur en un entier.

{
  "$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'))]"
    }
  }
}

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
intResult Int 4

max

max(arg1)

Retourne la valeur minimale à partir d’un tableau d’entiers ou une liste séparée par des virgules d’entiers.

Dans Bicep, utilisez la fonction max.

Paramètres

Paramètre Obligatoire Type Description
arg1 Oui tableau d’entiers ou liste séparée par des virgules d’entiers Collection permettant d’obtenir la valeur maximale.

Valeur retournée

Entier représentant la valeur maximale de la collection.

 Exemple

L’exemple suivant montre comment utiliser max avec un tableau et une liste d’entiers.

{
  "$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)]"
    }
  }
}

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
arrayOutput Int 5
intOutput Int 5

min

min(arg1)

Retourne la valeur minimale à partir d’un tableau d’entiers ou une liste séparée par des virgules d’entiers.

Dans Bicep, utilisez la fonction min.

Paramètres

Paramètre Obligatoire Type Description
arg1 Oui tableau d’entiers ou liste séparée par des virgules d’entiers Collection permettant d’obtenir la valeur minimale.

Valeur retournée

Entier représentant la valeur minimale de la collection.

 Exemple

L’exemple suivant indique comment utiliser la fonction min avec un tableau et une liste d’entiers.

{
  "$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)]"
    }
  }
}

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
arrayOutput Int 0
intOutput Int 0

mod

mod(operand1, operand2)

Retourne le reste de la division entière des deux entiers fournis.

La fonction mod n’est pas prise en charge dans Bicep. Utilisez plutôt l’opérateur %.

Paramètres

Paramètre Obligatoire Type Description
operand1 Oui int Le nombre à diviser.
operand2 Oui int Le nombre utilisé pour diviser, ne peut pas être 0.

Valeur retournée

Entier représentant le reste.

 Exemple

L’exemple suivant renvoie le reste de la division d’un paramètre par un autre paramètre.

{
  "$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'))]"
    }
  }
}

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
modResult Int 1

mul

mul(operand1, operand2)

Retourne la multiplication des deux entiers fournis.

La fonction mul n’est pas prise en charge dans Bicep. Utilisez plutôt l’opérateur *.

Paramètres

Paramètre Obligatoire Type Description
operand1 Oui int Premier nombre à multiplier.
operand2 Oui int Deuxième nombre à multiplier.

Valeur de retour

Entier représentant la multiplication.

Exemple

L’exemple suivant multiplie un paramètre par un autre paramètre.

{
  "$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)]"
    }
  }
}

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
mulResult Int 45

sub

sub(operand1, operand2)

Retourne la soustraction des deux entiers fournis.

La fonction sub n’est pas prise en charge dans Bicep. Utilisez plutôt l’opérateur -.

Paramètres

Paramètre Obligatoire Type Description
operand1 Oui int Le nombre auquel est appliquée la soustraction.
operand2 Oui int Le nombre qui est soustrait.

Valeur de retour

Entier représentant la multiplication.

Exemple

L’exemple suivant soustrait un paramètre à un autre paramètre.

{
  "$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'))]"
    }
  }
}

La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :

Nom Type Valeur
subResult Int 4

Étapes suivantes