Partager via


Fonctions logiques 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

Bicep est recommandé, car il offre les mêmes fonctionnalités que les modèles ARM et la syntaxe est plus facile à utiliser. Pour en savoir plus, consultez la bool fonction logique et les opérateurs logiques .

et

and(arg1, arg2, ...)

Vérifie si toutes les valeurs de paramètre sont vraies.

La fonction and n’est pas prise en charge dans Bicep. Utilisez l’opérateur && à la place.

Paramètres

Paramètre Obligatoire Type Description
arg1 Oui boolean Première valeur à vérifier si elle est vraie.
arg2 Oui boolean Deuxième valeur à vérifier si elle est vraie.
arguments supplémentaires Non boolean Autres arguments pour vérifier s’ils sont vrais.

Valeur de retour

Retourne True si toutes les valeurs sont true ; sinon, renvoie False.

Exemples

L’exemple suivant explique comment utiliser la logical fonction :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "andExampleOutput": {
      "type": "bool",
      "value": "[and(bool('true'), bool('false'))]"
    },
    "orExampleOutput": {
      "type": "bool",
      "value": "[or(bool('true'), bool('false'))]"
    },
    "notExampleOutput": {
      "type": "bool",
      "value": "[not(bool('true'))]"
    }
  }
}

La sortie de l’exemple précédent est :

Nom Type Valeur
andExampleOutput Bool False
orExampleOutput Bool True
notExampleOutput Bool False

bool

bool(arg1)

Convertit le paramètre en valeur booléenne.

Dans Bicep, utilisez la fonction logique bool.

Paramètres

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

Valeur de retour

Valeur booléenne de la valeur convertie.

Remarques

Vous pouvez également utiliser true() et false() pour obtenir des valeurs booléennes.

Exemples

L’exemple suivant montre comment utiliser bool avec une chaîne ou un entier :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "trueString": {
      "type": "bool",
      "value": "[bool('true')]"
    },
    "falseString": {
      "type": "bool",
      "value": "[bool('false')]"
    },
    "trueInt": {
      "type": "bool",
      "value": "[bool(1)]"
    },
    "falseInt": {
      "type": "bool",
      "value": "[bool(0)]"
    }
  }
}

La sortie des valeurs par défaut de l’exemple précédent est la suivante :

Nom Type Valeur
trueString Bool True
falseString Bool False
trueInt Bool True
falseInt Bool False

false

false()

Retourne false.

La fonction false n’est pas disponible dans Bicep. Utilisez plutôt le mot clé false.

Paramètres

La false fonction n’accepte aucun paramètre.

Valeur de retour

Valeur booléenne toujours false.

Exemple

L’exemple suivant retourne une valeur de sortie false :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "falseOutput": {
      "type": "bool",
      "value": "[false()]"
    }
  }
}

La sortie de l’exemple précédent est :

Nom Type Valeur
falseOutput Bool False

if

if(condition, trueValue, falseValue)

Retourne une valeur basée sur la valeur true ou false d’une condition.

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

Paramètres

Paramètre Obligatoire Type Description
condition Oui boolean Valeur à vérifier si elle a la valeur true ou false.
trueValue Oui chaîne, int, objet ou tableau La valeur à retourner lorsque la condition est true.
falseValue Oui chaîne, int, objet ou tableau La valeur à retourner lorsque la condition est false.

Valeur de retour

Retourne le deuxième paramètre lorsque le premier paramètre est True ; sinon, retourne le troisième paramètre.

Remarques

Lorsque la condition est True, seule la valeur true est évaluée. Lorsque la condition est False, seule la valeur false est évaluée. Avec la fonction if, vous pouvez inclure des expressions qui sont uniquement valides de manière conditionnelle. Par exemple, vous pouvez référencer une ressource qui existe sous une condition, mais pas sous l’autre condition. Vous trouverez un exemple illustrant des expressions évaluant de manière conditionnelle dans la section suivante.

Notez que la règle ci-dessus s’applique uniquement lorsque la condition peut être évaluée au début du processus de déploiement du modèle. Par exemple, vous ne pouvez pas utiliser une reference() condition.

Exemples

L’exemple suivant explique comment utiliser la if fonction :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
  ],
  "outputs": {
    "yesOutput": {
      "type": "string",
      "value": "[if(equals('a', 'a'), 'yes', 'no')]"
    },
    "noOutput": {
      "type": "string",
      "value": "[if(equals('a', 'b'), 'yes', 'no')]"
    },
    "objectOutput": {
      "type": "object",
      "value": "[if(equals('a', 'a'), json('{\"test\": \"value1\"}'), json('null'))]"
    }
  }
}

La sortie de l’exemple précédent est :

Nom Type Valeur
yesOutput String Oui
noOutput String non
objectOutput Object { « test » : « value1 » }

L’exemple de modèle suivant montre comment utiliser cette fonction avec des expressions qui sont uniquement valides de manière conditionnelle.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vmName": {
      "type": "string"
    },
    "location": {
      "type": "string"
    },
    "logAnalytics": {
      "type": "string",
      "defaultValue": ""
    }
  },
  "resources": [
   {
      "condition": "[not(empty(parameters('logAnalytics')))]",
      "type": "Microsoft.Compute/virtualMachines/extensions",
      "apiVersion": "2025-04-01",
      "name": "[format('{0}/omsOnboarding', parameters('vmName'))]",
      "location": "[parameters('location')]",
      "properties": {
        "publisher": "Microsoft.EnterpriseCloud.Monitoring",
        "type": "MicrosoftMonitoringAgent",
        "typeHandlerVersion": "1.0",
        "autoUpgradeMinorVersion": true,
        "settings": {
          "workspaceId": "[if(not(empty(parameters('logAnalytics'))), reference(parameters('logAnalytics'), '2015-11-01-preview').customerId, null())]"
        },
        "protectedSettings": {
          "workspaceKey": "[if(not(empty(parameters('logAnalytics'))), listKeys(parameters('logAnalytics'), '2015-11-01-preview').primarySharedKey, null())]"
        }
      }
    }
  ],
  "outputs": {
    "mgmtStatus": {
      "type": "string",
      "value": "[if(not(empty(parameters('logAnalytics'))), 'Enabled monitoring for VM!', 'Nothing to enable')]"
    }
  }
}

not

not(arg1)

Convertit la valeur booléenne à sa valeur opposée.

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

Paramètres

Paramètre Obligatoire Type Description
arg1 Oui boolean Valeur à convertir.

Valeur de retour

Retourne True lorsque le paramètre est False. Retourne False lorsque le paramètre est True.

Exemples

L’exemple suivant explique comment utiliser la logical fonction :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "andExampleOutput": {
      "type": "bool",
      "value": "[and(bool('true'), bool('false'))]"
    },
    "orExampleOutput": {
      "type": "bool",
      "value": "[or(bool('true'), bool('false'))]"
    },
    "notExampleOutput": {
      "type": "bool",
      "value": "[not(bool('true'))]"
    }
  }
}

La sortie de l’exemple précédent est :

Nom Type Valeur
andExampleOutput Bool False
orExampleOutput Bool True
notExampleOutput Bool False

L’exemple suivant utilise not avec des valeurs égales :

{
  "$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

ou

or(arg1, arg2, ...)

Vérifie si une valeur de paramètre est true.

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

Paramètres

Paramètre Obligatoire Type Description
arg1 Oui boolean Première valeur à vérifier si elle est vraie.
arg2 Oui boolean Deuxième valeur à vérifier si elle est vraie.
arguments supplémentaires Non boolean Autres arguments pour vérifier s’ils sont vrais.

Valeur de retour

Retourne True si l’une des valeurs est true ; sinon, renvoie False.

Exemples

L’exemple suivant explique comment utiliser la logical fonction :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "andExampleOutput": {
      "type": "bool",
      "value": "[and(bool('true'), bool('false'))]"
    },
    "orExampleOutput": {
      "type": "bool",
      "value": "[or(bool('true'), bool('false'))]"
    },
    "notExampleOutput": {
      "type": "bool",
      "value": "[not(bool('true'))]"
    }
  }
}

La sortie de l’exemple précédent est :

Nom Type Valeur
andExampleOutput Bool False
orExampleOutput Bool True
notExampleOutput Bool False

true

true()

Retourne la valeur true.

La fonction true n’est pas disponible dans Bicep. Utilisez plutôt le mot clé true.

Paramètres

La true fonction n’accepte aucun paramètre.

Valeur de retour

Valeur booléenne qui est toujours vraie.

Exemple

L’exemple suivant retourne une valeur de sortie vraie :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [],
  "outputs": {
    "trueOutput": {
      "type": "bool",
      "value": "[true()]"
    }
  }
}

La sortie de l’exemple précédent est :

Nom Type Valeur
trueOutput Bool True

Étapes suivantes