Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Cet article décrit les types de données pris en charge dans les modèles Azure Resource Manager (modèles ARM).
Types pris en charge
Dans un modèle ARM, vous pouvez utiliser ces types de données :
- tableau
- bool
- int
- objet
- secureObject
- securestring
- ficelle
Tableaux
Les tableaux commencent par un crochet ouvrant ([) et se terminent par un crochet fermant (]). Un tableau peut être déclaré dans une seule ligne ou plusieurs lignes. Chaque élément est séparé par une virgule.
"parameters": {
"exampleArray": {
"type": "array",
"defaultValue": [
1,
2,
3
]
}
},
"outputs": {
"arrayOutput": {
"type": "array",
"value": "[variables('exampleArray')]"
},
"firstExampleArrayElement": {
"type": "int",
"value": "[parameters('exampleArray')[0]]"
}
}
Les éléments d’un tableau peuvent être du même type ou des types différents.
"variables": {
"mixedArray": [
"[resourceGroup().name]",
1,
true,
"example string"
]
}
"outputs": {
"arrayOutput": {
"type": "array",
"value": "[variables('mixedArray')]"
},
"firstMixedArrayElement": {
"type": "string",
"value": "[variables('mixedArray')[0]]"
}
}
valeurs booléennes
Quand vous spécifiez des valeurs booléennes, utilisez true ou false. N’entourez pas la valeur de guillemets.
"parameters": {
"exampleBool": {
"type": "bool",
"defaultValue": true
}
},
Entiers
Quand vous spécifiez des valeurs entières, n’utilisez pas de guillemets.
"parameters": {
"exampleInt": {
"type": "int",
"defaultValue": 1
}
}
Pour les entiers passés en tant que paramètres inline, la plage de valeurs peut être limitée par le SDK ou l’outil en ligne de commande que vous utilisez pour le déploiement. Par exemple, lors de l’utilisation de PowerShell pour déployer un modèle, les types entiers peuvent passer de -2147483648 à 2147483647. Pour éviter cette limite, spécifiez des valeurs entières élevées dans un fichier de paramètres. Les types de ressources appliquent leurs propres limites aux propriétés d’entiers.
Objets
Les objets commencent par une accolade ouvrante ({) et se terminent par une accolade fermante (}). Chaque propriété d’un objet se compose de key et value. Les key et value sont entre guillemets doubles et sont séparés par un deux-points (:). Chaque propriété est séparée par une virgule.
"parameters": {
"exampleObject": {
"type": "object",
"defaultValue": {
"name": "test name",
"id": "123-abc",
"isCurrent": true,
"tier": 1
}
}
}
Vous pouvez obtenir une propriété à partir d’un objet avec la notation par points.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"exampleObject": {
"type": "object",
"defaultValue": {
"name": "test name",
"id": "123-abc",
"isCurrent": true,
"tier": 1
}
}
},
"resources": [
],
"outputs": {
"nameFromObject": {
"type": "string",
"value": "[parameters('exampleObject').name]"
}
}
}
Dans JSON, un objet est une collection non ordonnée de paires clé/valeur (zéro ou plus). L’ordre peut être différent selon les implémentations. Par exemple, la fonction Bicep items() trie les objets par ordre alphabétique. Dans d’autres endroits, l’ordre d’origine peut être conservé. En raison de ce non-déterminisme, évitez de faire des hypothèses sur le classement des clés d'objet lors de l'écriture de code, ce qui interagit avec les paramètres et les sorties des déploiements.
Chaînes
Les chaînes sont marquées par des guillemets doubles.
"parameters": {
"exampleString": {
"type": "string",
"defaultValue": "test value"
}
},
Sécuriser les chaînes et objets
La chaîne sécurisée utilise le même format que la chaîne, et l’objet sécurisé utilise le même format que l’objet. Lorsque vous définissez un paramètre sur une chaîne sécurisée ou un objet sécurisé, la valeur du paramètre n’est pas enregistrée dans l’historique de déploiement et n’est pas consignée. Toutefois, si vous définissez cette valeur sécurisée sur une propriété qui n’attend pas une valeur sécurisée, la valeur n’est pas protégée. Par exemple, si vous définissez une chaîne sécurisée sur une balise, cette valeur est stockée sous forme de texte brut. Utilisez des chaînes sécurisées pour les mots de passe et les secrets.
L’exemple suivant montre deux paramètres sécurisés.
"parameters": {
"password": {
"type": "securestring"
},
"configValues": {
"type": "secureObject"
}
}
Remarque
N’utilisez pas de chaînes ou d’objets sécurisés comme valeurs de sortie. Si vous incluez une valeur sécurisée comme valeur de sortie, la valeur n’est pas affichée dans l’historique de déploiement et ne peut pas être récupérée à partir d’un autre modèle. Au lieu de cela, enregistrez la valeur sécurisée dans un coffre de clés et passez-le comme paramètre depuis le coffre de clés.
Étapes suivantes
Pour en savoir plus sur la syntaxe du modèle, consultez Comprendre la structure et la syntaxe des modèles ARM.