Exercice : ajoutez des paramètres et des sorties à votre modèle Azure Resource Manager
Dans cet exercice, vous ajoutez un paramètre pour définir le nom du compte de stockage Azure lors du déploiement. Vous ajoutez ensuite un paramètre pour définir les référence SU de compte de stockage que vous autorisez et définissez celle à utiliser pour ce déploiement. Vous ajoutez également une fonction utile au modèle Azure Resource Manager (modèle ARM) en ajoutant une sortie que vous pouvez utiliser plus tard dans le processus de déploiement.
Créer des paramètres pour le modèle ARM
Ici, vous rendez votre modèle ARM plus flexible en ajoutant des paramètres qui peuvent être définis au moment de l’exécution. Créez un paramètre pour la valeur storageName.
Dans le fichier azuredeploy.json dans Visual Studio Code, mettez à jour
"parameters":{},, de sorte qu’il ressemble à :"parameters": { "storageName": { "type": "string", "minLength": 3, "maxLength": 24, "metadata": { "description": "The name of the Azure storage resource" } } },Pour mettre en forme correctement le fichier JSON, appuyez sur Alt+Maj+F.
Utilisez le nouveau paramètre dans le bloc
resourcesdans les valeursnameetdisplayName. Le fichier complet ressemble à cet exemple de code :{ "$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, "metadata": { "description": "The name of the Azure storage resource" } } }, "functions": [], "variables": {}, "resources": [ { "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2025-01-01", "name": "[parameters('storageName')]", "tags": { "displayName": "[parameters('storageName')]" }, "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "Standard_LRS" } } ], "outputs": {} }Enregistrez le fichier.
Déployer le modèle ARM paramétré
Ici, vous modifiez le nom du déploiement pour mieux refléter ce que fait ce déploiement et renseignez une valeur pour le nouveau paramètre.
Exécutez les commandes Azure CLI suivantes dans le terminal. Ce script est identique à celui que vous avez utilisé précédemment, sauf que le nom du déploiement a été modifié. Entrez une valeur unique pour le storageName paramètre. Il doit être globalement unique dans Azure, contenir 3 à 24 caractères et inclure uniquement des lettres minuscules, des chiffres et des traits d’union. Vous pouvez réutiliser le nom unique que vous avez créé dans l’unité précédente ; si vous le faites, Azure met à jour la ressource existante au lieu de en créer une nouvelle.
templateFile="azuredeploy.json"
today=$(date +"%d-%b-%Y")
DeploymentName="addnameparameter-"$today
az deployment group create \
--name $DeploymentName \
--template-file $templateFile \
--parameters storageName={your-unique-name}
Exécutez les commandes Azure PowerShell suivantes dans le terminal. Ce script est identique à celui que vous avez utilisé précédemment, sauf que le nom du déploiement a été modifié. Entrez une valeur unique pour le storageName paramètre. Il doit être globalement unique dans Azure, contenir 3 à 24 caractères et inclure uniquement des lettres minuscules, des chiffres et des traits d’union. Vous pouvez réutiliser le nom unique que vous avez créé dans l’unité précédente ; si vous le faites, Azure met à jour la ressource existante au lieu de en créer une nouvelle.
$templateFile="azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="addnameparameter-"+"$today"
New-AzResourceGroupDeployment `
-Name $deploymentName `
-TemplateFile $templateFile `
-storageName {your-unique-name}
Vérifier votre déploiement
Une fois le déploiement terminé, revenez au portail Azure dans votre navigateur. Accédez à votre groupe de ressources et vérifiez qu’il y a maintenant 3 déploiements réussis. Sélectionnez ce lien.
Notez que les trois déploiements se trouvent dans la liste.
Explorez le déploiement addnameparameter comme vous l’avez fait précédemment.
Ajouter un autre paramètre qui limite les valeurs autorisées
Ici, vous utilisez des paramètres pour limiter les valeurs autorisées pour un paramètre.
Ajoutez un nouveau paramètre nommé
storageSKUà laparameterssection du fichier azuredeploy.json .// This is the allowed values for an Azure storage account "storageSKU": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ] }La première ligne est un commentaire. Les modèles ARM prennent en charge les commentaires
//et/* */.Mettez à jour la section resources de façon à ce qu’elle utilise le paramètre
storageSKU. Si vous tirez parti de la fonctionnalité IntelliSense de Visual Studio Code, elle facilite cette étape."sku": { "name": "[parameters('storageSKU')]" }Le fichier complet ressemble à cet exemple de code :
{ "$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, "metadata": { "description": "The name of the Azure storage resource" } }, "storageSKU": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ] } }, "functions": [], "variables": {}, "resources": [ { "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2025-01-01", "name": "[parameters('storageName')]", "tags": { "displayName": "[parameters('storageName')]" }, "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "[parameters('storageSKU')]" } } ], "outputs": {} }Enregistrez le fichier.
Déployer le modèle ARM
Ici, vous effectuez un déploiement réussi en utilisant un paramètre storageSKU qui se trouve dans la liste autorisée. Ensuite, vous essayez de déployer le modèle en utilisant un paramètre storageSKU qui ne figure pas dans la liste autorisée. Le deuxième déploiement échoue comme prévu.
Déployez le modèle en exécutant les commandes suivantes. Renseignez un nom unique pour le paramètre
storageName. Il doit être globalement unique dans Azure, contenir 3 à 24 caractères et inclure uniquement des lettres minuscules, des chiffres et des traits d’union. Vous pouvez réutiliser le nom unique que vous avez créé dans l’unité précédente ; si vous le faites, Azure met à jour la ressource existante au lieu de en créer une nouvelle.templateFile="azuredeploy.json" today=$(date +"%d-%b-%Y") DeploymentName="addSkuParameter-"$today az deployment group create \ --name $DeploymentName \ --template-file $templateFile \ --parameters storageSKU=Standard_GRS storageName={your-unique-name}Laissez le déploiement se terminer. Ce déploiement est correctement effectué. Votre liste de valeurs autorisées empêchent les utilisateurs de votre modèle de transmettre des valeurs de paramètre qui ne fonctionnent pas pour la ressource. Voyons ce qui se passe lorsque vous fournissez une référence SKU non valide.
Exécutez les commandes suivantes pour déployer le modèle avec un paramètre qui n’est pas autorisé. Ici, vous avez changé le paramètre
storageSKUen Basic (De base). Renseignez un nom unique pour le paramètrestorageName. Il doit être globalement unique dans Azure, contenir 3 à 24 caractères et inclure uniquement des lettres minuscules, des chiffres et des traits d’union. Vous pouvez réutiliser le nom unique que vous avez créé dans l’unité précédente ; si vous le faites, Azure met à jour la ressource existante au lieu de en créer une nouvelle.templateFile="azuredeploy.json" today=$(date +"%d-%b-%Y") DeploymentName="addSkuParameter-"$today az deployment group create \ --name $DeploymentName \ --template-file $templateFile \ --parameters storageSKU=Basic storageName={your-unique-name}Échec de ce déploiement. Notez l’erreur.
Déployez le modèle en exécutant les commandes suivantes. Renseignez un nom unique pour le paramètre
storageName. Il doit être globalement unique dans Azure, contenir 3 à 24 caractères et inclure uniquement des lettres minuscules, des chiffres et des traits d’union. Vous pouvez réutiliser le nom unique que vous avez créé dans l’unité précédente ; si vous le faites, Azure met à jour la ressource existante au lieu de en créer une nouvelle.$today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addSkuParameter-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storageName {your-unique-name} ` -storageSKU Standard_GRSLaissez le déploiement se terminer. Ce déploiement est correctement effectué. Votre liste de valeurs autorisées empêchent les utilisateurs de votre modèle de transmettre des valeurs de paramètre qui ne fonctionnent pas pour la ressource. Voyons ce qui se passe lorsque vous fournissez une référence SKU non valide.
Exécutez les commandes suivantes pour déployer le modèle avec un paramètre qui n’est pas autorisé. Ici, vous avez changé le paramètre
storageSKUen Basic (De base). Renseignez un nom unique pour le paramètrestorageName. Il doit être globalement unique dans Azure, contenir 3 à 24 caractères et inclure uniquement des lettres minuscules, des chiffres et des traits d’union. Vous pouvez réutiliser le nom unique que vous avez créé dans l’unité précédente ; si vous le faites, Azure met à jour la ressource existante au lieu de en créer une nouvelle.$today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addSkuParameter-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storageName {your-unique-name} ` -storageSKU BasicÉchec de ce déploiement. Notez l’erreur.
Ajouter une sortie au modèle ARM
Ici, vous faites un ajout à la section outputs du modèle ARM pour produire une sortie des points de terminaison pour la ressource de compte de stockage.
Dans le fichier azuredeploy.json dans Visual Studio Code, mettez à jour
"outputs":{},pour qu’il ressemble à ceci :"outputs": { "storageEndpoint": { "type": "object", "value": "[reference(parameters('storageName')).primaryEndpoints]" } }Enregistrez le fichier.
Déployer le modèle ARM avec une sortie
Ici, vous déployez le modèle et voyez la sortie des points de terminaison au format JSON. Vous devez renseigner un nom unique pour le paramètre storageName. Il doit être globalement unique dans Azure, contenir 3 à 24 caractères et inclure uniquement des lettres minuscules, des chiffres et des traits d’union. Vous pouvez réutiliser le nom unique que vous avez créé dans l’unité précédente ; si vous le faites, Azure met à jour la ressource existante au lieu de en créer une nouvelle.
Déployez le modèle en exécutant les commandes suivantes. Veillez à remplacer {your-unique-name} par une chaîne qui est unique.
templateFile="azuredeploy.json" today=$(date +"%d-%b-%Y") DeploymentName="addoutputs-"$today az deployment group create \ --name $DeploymentName \ --template-file $templateFile \ --parameters storageSKU=Standard_LRS storageName={your-unique-name}Notez le résultat.
Déployez le modèle en exécutant les commandes suivantes. Veillez à remplacer {your-unique-name} par une chaîne qui est unique.
$today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addOutputs-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storageName {your-unique-name} ` -storageSKU Standard_LRSNotez le résultat.
Vérifier votre déploiement de sortie
Dans le portail Azure, accédez à votre déploiement addOutputs. Vous pouvez également y trouver votre sortie.