Fonctions de comparaison pour les modèles ARM
Resource Manager fournit plusieurs fonctions pour effectuer des comparaisons 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 plus d’informations, consultez l’opérateur logique coalesce et les opérateurs de comparaison.
coalesce
coalesce(arg1, arg2, arg3, ...)
Retourne la première valeur non null à partir des paramètres. Les chaînes vides, les tableaux vides et les objets vides ne sont pas null.
Dans Bicep, utilisez plutôt l’opérateur ??
. Voir Fusionner ??.
Paramètres
Paramètre | Obligatoire | Type | Description |
---|---|---|---|
arg1 | Oui | int, string, array ou object | La première valeur dans laquelle rechercher des valeurs null. |
plus d’arguments | Non | int, string, array ou object | Plus de valeurs dans lesquelles rechercher des valeurs null. |
Valeur retournée
Valeur des premiers paramètres non null. Il peut s’agir d’une chaîne, d’un entier, d’un tableau ou d’un objet. Null si tous les paramètres sont null.
Exemple
L’exemple de modèle suivant montre la sortie de différentes utilisations de la fonction coalesce.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"objectToTest": {
"type": "object",
"defaultValue": {
"null1": null,
"null2": null,
"string": "default",
"int": 1,
"object": { "first": "default" },
"array": [ 1 ]
}
}
},
"resources": [
],
"outputs": {
"stringOutput": {
"type": "string",
"value": "[coalesce(parameters('objectToTest').null1, parameters('objectToTest').null2, parameters('objectToTest').string)]"
},
"intOutput": {
"type": "int",
"value": "[coalesce(parameters('objectToTest').null1, parameters('objectToTest').null2, parameters('objectToTest').int)]"
},
"objectOutput": {
"type": "object",
"value": "[coalesce(parameters('objectToTest').null1, parameters('objectToTest').null2, parameters('objectToTest').object)]"
},
"arrayOutput": {
"type": "array",
"value": "[coalesce(parameters('objectToTest').null1, parameters('objectToTest').null2, parameters('objectToTest').array)]"
},
"emptyOutput": {
"type": "bool",
"value": "[empty(coalesce(parameters('objectToTest').null1, parameters('objectToTest').null2))]"
}
}
}
La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :
Nom | Type | Valeur |
---|---|---|
stringOutput | String | default |
intOutput | Int | 1 |
objectOutput | Object | {"first": "default"} |
arrayOutput | Array | [1] |
emptyOutput | Bool | True |
equals
equals(arg1, arg2)
Vérifie si deux valeurs sont identiques. La comparaison respecte la casse.
Dans Bicep, utilisez plutôt l’opérateur ==
. Consultez Égal à ==.
Paramètres
Paramètre | Obligatoire | Type | Description |
---|---|---|---|
arg1 | Oui | int, string, array ou object | Première valeur dont l’égalité est à vérifier. |
arg2 | Oui | int, string, array ou object | Deuxième valeur dont l’égalité est à vérifier. |
Valeur de retour
Retourne True si les valeurs sont égales ; sinon, renvoie False.
Remarques
La fonction equals est souvent utilisée avec l’élément condition
pour tester si une ressource est déployée.
{
"condition": "[equals(parameters('newOrExisting'),'new')]",
"type": "Microsoft.Storage/storageAccounts",
"name": "[variables('storageAccountName')]",
"apiVersion": "2022-09-01",
"location": "[resourceGroup().location]",
"sku": {
"name": "[variables('storageAccountType')]"
},
"kind": "Storage",
"properties": {}
}
Exemple
L’exemple suivant vérifie que les différents types de valeurs sont égaux. Toutes les valeurs par défaut retournent la valeur True.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"firstInt": {
"type": "int",
"defaultValue": 1
},
"secondInt": {
"type": "int",
"defaultValue": 1
},
"firstString": {
"type": "string",
"defaultValue": "demo"
},
"secondString": {
"type": "string",
"defaultValue": "Demo"
},
"firstArray": {
"type": "array",
"defaultValue": [ "a", "b" ]
},
"secondArray": {
"type": "array",
"defaultValue": [ "a", "b" ]
},
"firstObject": {
"type": "object",
"defaultValue": { "a": "b" }
},
"secondObject": {
"type": "object",
"defaultValue": { "a": "b" }
}
},
"resources": [
],
"outputs": {
"checkInts": {
"type": "bool",
"value": "[equals(parameters('firstInt'), parameters('secondInt') )]"
},
"checkStrings": {
"type": "bool",
"value": "[equals(parameters('firstString'), parameters('secondString'))]"
},
"checkArrays": {
"type": "bool",
"value": "[equals(parameters('firstArray'), parameters('secondArray'))]"
},
"checkObjects": {
"type": "bool",
"value": "[equals(parameters('firstObject'), parameters('secondObject'))]"
}
}
}
La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :
Nom | Type | Value | Remarque |
---|---|---|---|
checkInts | Bool | True | |
checkStrings | Bool | False | Le résultat est false dû au fait que la comparaison respecte la casse. |
checkArrays | Bool | True | |
checkObjects | Bool | True |
L’exemple de modèle suivant utilise not avec equals.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
],
"outputs": {
"checkNotEquals": {
"type": "bool",
"value": "[not(equals(1, 2))]"
}
}
}
La sortie de l’exemple précédent est :
Nom | Type | Valeur |
---|---|---|
checkNotEquals | Bool | True |
greater
greater(arg1, arg2)
Vérifie si la première valeur est supérieure à la deuxième valeur.
Dans Bicep, utilisez plutôt l’opérateur >
. Consultez Supérieur à >.
Paramètres
Paramètre | Obligatoire | Type | Description |
---|---|---|---|
arg1 | Oui | entier ou chaîne | Première valeur pour la comparaison « supérieur à ». |
arg2 | Oui | entier ou chaîne | Seconde valeur pour la comparaison « supérieur à ». |
Valeur de retour
Retourne True si la première valeur est supérieure à la seconde ; sinon, renvoie False.
Exemple
L’exemple suivant vérifie si une valeur est supérieure à l’autre.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"firstInt": {
"type": "int",
"defaultValue": 1
},
"secondInt": {
"type": "int",
"defaultValue": 2
},
"firstString": {
"type": "string",
"defaultValue": "A"
},
"secondString": {
"type": "string",
"defaultValue": "a"
}
},
"resources": [
],
"outputs": {
"checkInts": {
"type": "bool",
"value": "[greater(parameters('firstInt'), parameters('secondInt') )]"
},
"checkStrings": {
"type": "bool",
"value": "[greater(parameters('firstString'), parameters('secondString'))]"
}
}
}
La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :
Nom | Type | Valeur |
---|---|---|
checkInts | Bool | False |
checkStrings | Bool | True |
greaterOrEquals
greaterOrEquals(arg1, arg2)
Vérifie si la première valeur est supérieure ou égale à la deuxième valeur.
Dans Bicep, utilisez plutôt l’opérateur >=
. Consultez Supérieur ou égal à >=.
Paramètres
Paramètre | Obligatoire | Type | Description |
---|---|---|---|
arg1 | Oui | entier ou chaîne | Première valeur pour la comparaison « supérieur ou égal à ». |
arg2 | Oui | entier ou chaîne | Seconde valeur pour la comparaison « supérieur ou égal à ». |
Valeur de retour
Retourne True si la première valeur est supérieure ou égale à la seconde ; sinon, renvoie False.
Exemple
L’exemple suivant vérifie si une valeur est supérieure ou égale à l’autre.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"firstInt": {
"type": "int",
"defaultValue": 1
},
"secondInt": {
"type": "int",
"defaultValue": 2
},
"firstString": {
"type": "string",
"defaultValue": "A"
},
"secondString": {
"type": "string",
"defaultValue": "a"
}
},
"resources": [
],
"outputs": {
"checkInts": {
"type": "bool",
"value": "[greaterOrEquals(parameters('firstInt'), parameters('secondInt') )]"
},
"checkStrings": {
"type": "bool",
"value": "[greaterOrEquals(parameters('firstString'), parameters('secondString'))]"
}
}
}
La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :
Nom | Type | Valeur |
---|---|---|
checkInts | Bool | False |
checkStrings | Bool | True |
less
less(arg1, arg2)
Vérifie si la première valeur est inférieure à la deuxième valeur.
Dans Bicep, utilisez plutôt l’opérateur <
. Consultez Inférieur à <.
Paramètres
Paramètre | Obligatoire | Type | Description |
---|---|---|---|
arg1 | Oui | entier ou chaîne | Première valeur pour la comparaison « inférieur à ». |
arg2 | Oui | entier ou chaîne | Deuxième valeur pour la comparaison « inférieur à ». |
Valeur de retour
Retourne True si la première valeur est inférieure à la seconde ; sinon, renvoie False.
Exemple
L’exemple suivant vérifie si une valeur est inférieure à l’autre.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"firstInt": {
"type": "int",
"defaultValue": 1
},
"secondInt": {
"type": "int",
"defaultValue": 2
},
"firstString": {
"type": "string",
"defaultValue": "A"
},
"secondString": {
"type": "string",
"defaultValue": "a"
}
},
"resources": [
],
"outputs": {
"checkInts": {
"type": "bool",
"value": "[less(parameters('firstInt'), parameters('secondInt') )]"
},
"checkStrings": {
"type": "bool",
"value": "[less(parameters('firstString'), parameters('secondString'))]"
}
}
}
La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :
Nom | Type | Valeur |
---|---|---|
checkInts | Bool | True |
checkStrings | Bool | False |
lessOrEquals
lessOrEquals(arg1, arg2)
Vérifie si la première valeur est inférieure ou égale à la deuxième valeur.
Dans Bicep, utilisez plutôt l’opérateur <=
. Consultez Inférieur ou égal à <=.
Paramètres
Paramètre | Obligatoire | Type | Description |
---|---|---|---|
arg1 | Oui | entier ou chaîne | Première valeur pour la comparaison « inférieur à ». |
arg2 | Oui | entier ou chaîne | Première valeur pour la comparaison « inférieur ou égal à ». |
Valeur de retour
Retourne True si la première valeur est inférieure ou égale à la seconde ; sinon, renvoie False.
Exemple
L’exemple suivant vérifie si une valeur est inférieure ou égale à l’autre.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"firstInt": {
"type": "int",
"defaultValue": 1
},
"secondInt": {
"type": "int",
"defaultValue": 2
},
"firstString": {
"type": "string",
"defaultValue": "A"
},
"secondString": {
"type": "string",
"defaultValue": "a"
}
},
"resources": [
],
"outputs": {
"checkInts": {
"type": "bool",
"value": "[lessOrEquals(parameters('firstInt'), parameters('secondInt') )]"
},
"checkStrings": {
"type": "bool",
"value": "[lessOrEquals(parameters('firstString'), parameters('secondString'))]"
}
}
}
La sortie de l’exemple précédent avec les valeurs par défaut se présente comme suit :
Nom | Type | Valeur |
---|---|---|
checkInts | Bool | True |
checkStrings | Bool | False |
Étapes suivantes
- Pour obtenir une description des sections d’un modèle ARM, consultez Comprendre la structure et la syntaxe des modèles ARM.