Tutoriel : Ajouter des variables à votre modèle ARM
Dans ce tutoriel, vous allez apprendre à ajouter une variable à votre modèle Azure Resource Manager (modèle ARM). Les variables simplifient vos modèles. Elles vous permettent d’écrire une expression une fois et de la réutiliser sur l’ensemble du modèle. Ce tutoriel dure environ 7 minutes.
Prérequis
Nous vous recommandons de suivre le tutoriel sur les fonctions, mais ce n’est pas obligatoire.
Visual Studio Code doit être installé et être compatible avec l’extension Azure Resource Manager Tools et, au choix, Azure PowerShell ou Azure CLI. Pour plus d’informations, consultez les outils de modèle.
Vérifier le modèle
À la fin du précédent tutoriel, votre modèle présentait le fichier JSON suivant :
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageName": {
"type": "string",
"minLength": 3,
"maxLength": 24
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
]
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[parameters('storageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
Le nom de votre compte de stockage Azure doit être unique pour continuer facilement à générer votre modèle ARM. Si vous avez suivi les tutoriels précédents de cette série, vous êtes lassé de chercher un nom unique. Pour résoudre ce problème, ajoutez une variable qui crée un nom unique pour votre compte de stockage.
Utiliser une variable
L’exemple suivant met en évidence les modifications à apporter pour ajouter une variable à votre modèle qui crée un nom de compte de stockage unique. Copiez l’intégralité du fichier et remplacez votre modèle par son contenu.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"type": "string",
"minLength": 3,
"maxLength": 11
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
]
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"variables": {
"uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-09-01",
"name": "[variables('uniqueStorageName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
}
]
}
Notez qu’elle comprend une variable nommée uniqueStorageName
. Cette variable utilise quatre fonctions pour créer une valeur de chaîne.
Vous êtes déjà familiarisé avec la fonction parameters, nous ne l’examinerons donc pas.
Vous êtes également familiarisé avec la fonction resourceGroup. Dans ce cas, vous obtenez la propriété id
au lieu de la propriété location
, comme illustré dans le tutoriel précédent. La propriété id
retourne l’identificateur complet du groupe de ressources, notamment l’ID d’abonnement et le nom du groupe de ressources.
La fonction uniqueString crée une valeur de hachage de 13 caractères. Les paramètres que vous transmettez déterminent la valeur renvoyée. Pour ce tutoriel, vous utilisez l’ID de groupe de ressources en tant qu’entrée pour la valeur de hachage. Cela signifie que vous pouvez déployer ce modèle dans différents groupes de ressources et obtenir une valeur de chaîne unique différente. Toutefois, vous obtenez la même valeur si vous déployez sur le même groupe de ressources.
La fonction concat prend des valeurs et les combine ensemble. Pour cette variable, elle prend la chaîne à partir du paramètre et la chaîne à partir de la fonction uniqueString
, puis les combine en une seule chaîne.
Le paramètre storagePrefix
vous permet de transmettre un préfixe qui vous aide à identifier les comptes de stockage. Vous pouvez créer votre propre convention d’affectation de noms ; dans un liste complète de ressources, celle-ci facilite l’identification des comptes de stockage après le déploiement.
Enfin, remarquez que le nom du compte de stockage est maintenant défini sur la variable, et non sur un paramètre.
Déployer un modèle
Déployons le modèle. Le déploiement de ce modèle est plus facile que les modèles précédents, car vous fournissez uniquement le préfixe pour le nom du compte de stockage.
Si vous n’avez pas créé le groupe de ressources, consultez Créer un groupe de ressources. L’exemple suppose que vous avez défini la variable templateFile
sur le chemin du fichier de modèle, comme indiqué dans le premier tutoriel.
New-AzResourceGroupDeployment `
-Name addnamevariable `
-ResourceGroupName myResourceGroup `
-TemplateFile $templateFile `
-storagePrefix "store" `
-storageSKU Standard_LRS
Notes
En cas d’échec du déploiement, utilisez le commutateur verbose
pour obtenir des informations sur les ressources créées. Utilisez le commutateur debug
pour obtenir des informations supplémentaires sur le débogage.
Vérifier le déploiement
Vous pouvez vérifier le déploiement en explorant le groupe de ressources à partir du portail Azure.
- Connectez-vous au portail Azure.
- Dans le menu de gauche, sélectionnez Groupes de ressources.
- Sélectionnez votre groupe de ressources.
- Notez que le nom de votre compte de stockage déployé est store, ainsi qu’une chaîne de caractères aléatoires.
Nettoyer les ressources
Si vous passez au tutoriel suivant, vous n’avez pas besoin de supprimer le groupe de ressources.
Si vous arrêtez maintenant, vous pouvez supprimer le groupe de ressources.
- Dans le portail Azure, sélectionnez Groupes de ressources dans le menu de gauche.
- Tapez le nom du groupe de ressources dans la zone de texte Filtre pour n’importe quel champ...
- Cochez la case en regard de myResourceGroup et sélectionnez myResourceGroup ou le nom de votre groupe de ressources.
- Sélectionnez Supprimer le groupe de ressources dans le menu supérieur.
Étapes suivantes
Dans ce tutoriel, vous ajoutez une variable qui crée un nom de compte de stockage unique. Dans le tutoriel suivant, vous allez retourner une valeur à partir du compte de stockage déployé.