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
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 la fonction logique bool et les opérateurs logiques.
et
and(arg1, arg2, ...)
Vérifie si toutes les valeurs de paramètres sont true.
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 | La première valeur pour vérifier si c’est true. |
arg2 | Oui | boolean | La deuxième valeur pour vérifier si c’est true. |
arguments supplémentaires | Non | boolean | Arguments supplémentaires pour vérifier si les valeurs correspondent à true. |
Valeur de retour
Retourne True si toutes les valeurs sont true ; sinon, renvoie False.
Exemples
L’exemple suivant montre comment utiliser des fonctions logiques.
{
"$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 le booléen 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 de l’exemple précédent avec les valeurs par défaut se présente comme suit :
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 fonction false n’accepte aucun paramètre.
Valeur de retour
Valeur booléenne qui correspond 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 indiquant si une condition est true ou false.
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 | La valeur pour vérifier si c’est 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.
Exemples
L’exemple suivant explique comment utiliser la fonction if
.
{
"$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": "2022-11-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 montre comment utiliser des fonctions logiques.
{
"$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
avecnot
.
{
"$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 l’une des valeurs du 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 | La première valeur pour vérifier si c’est true. |
arg2 | Oui | boolean | La deuxième valeur pour vérifier si c’est true. |
arguments supplémentaires | Non | boolean | Arguments supplémentaires pour vérifier si les valeurs correspondent à true. |
Valeur de retour
Retourne True si l’une des valeurs est true ; sinon, renvoie False.
Exemples
L’exemple suivant montre comment utiliser des fonctions logiques.
{
"$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 fonction true n’accepte aucun paramètre.
Valeur de retour
Valeur booléenne qui correspond toujours à true.
Exemple
L’exemple suivant retourne une valeur de sortie true.
{
"$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
- Pour obtenir une description des sections d’un modèle ARM, consultez Comprendre la structure et la syntaxe des modèles ARM.