Partager via


Tutoriel : Ajouter des paramètres à votre modèle ARM

Dans le tutoriel précédent, vous avez appris à ajouter un compte de stockage Azure au modèle et à le déployer. Dans ce tutoriel, vous allez apprendre à améliorer le modèle Azure Resource Manager (modèle ARM) en ajoutant des paramètres. Cette instruction prend 14 minutes .

Prerequisites

Nous vous recommandons de suivre le didacticiel sur les ressources, mais il n’est pas nécessaire.

Vous devez disposer de Visual Studio Code et d’Azure PowerShell ou d’Azure CLI. Pour plus d’informations, consultez les outils de modèle.

Vérifier le modèle

À la fin du tutoriel précédent, votre modèle contient le fichier JSON suivant :

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "{provide-unique-name}",
      "location": "eastus",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Vous remarquerez peut-être qu’il existe un problème avec ce modèle. Le nom du compte de stockage est codé en dur. Vous ne pouvez utiliser ce modèle que pour déployer le même compte de stockage à chaque fois. Pour déployer un compte de stockage avec un autre nom, vous devez créer un modèle, ce qui n’est évidemment pas un moyen pratique d’automatiser vos déploiements.

Rendre le modèle réutilisable

Pour rendre votre modèle réutilisable, nous allons ajouter un paramètre que vous pouvez utiliser pour passer un nom de compte de stockage. Le fichier JSON de l’exemple suivant montre les modifications apportées à votre modèle. Le storageName paramètre est identifié comme une chaîne. Le nom du compte de stockage est toutes les lettres minuscules ou chiffres et a une limite de 24 caractères.

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": {
    "storageName": {
      "type": "string",
      "minLength": 3,
      "maxLength": 24
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[parameters('storageName')]",
      "location": "eastus",
      "sku": {
        "name": "Standard_LRS"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Déployer un modèle

Déployons le modèle. L’exemple suivant déploie le modèle avec Azure CLI ou Azure PowerShell. Notez que vous fournissez le nom du compte de stockage en tant qu’une des valeurs de la commande de déploiement. Pour le nom du compte de stockage, indiquez le même nom que celui que vous avez utilisé dans le tutoriel précédent.

Si vous n’avez pas créé le groupe de ressources, consultez Créer un groupe de ressources. L’exemple suppose que vous définissez la templateFile variable sur le chemin d’accès du fichier de modèle, comme indiqué dans le premier tutoriel.

New-AzResourceGroupDeployment `
  -Name addnameparameter `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storageName "{your-unique-name}"

Comprendre les mises à jour des ressources

Après avoir déployé un compte de stockage portant le même nom que celui que vous avez utilisé précédemment, vous pouvez vous demander comment le redéploiement affecte la ressource.

Si la ressource existe déjà et qu’aucune modification n’est apportée aux propriétés, il n’est pas nécessaire d’effectuer d’autres actions. Si la ressource existe et qu’une propriété change, elle est mise à jour. Si la ressource n’existe pas, elle est créée.

Cette façon de gérer les mises à jour signifie que votre modèle peut inclure toutes les ressources dont vous avez besoin pour une solution Azure. Vous pouvez redéployer le modèle en toute sécurité et savoir que les ressources changent ou sont créées uniquement si nécessaire. Si vous ajoutez des fichiers à votre compte de stockage, par exemple, vous pouvez redéployer le compte de stockage sans perdre les fichiers.

Personnaliser par environnement

Les paramètres vous permettent de personnaliser le déploiement en fournissant des valeurs adaptées à un environnement particulier. Vous pouvez transmettre différentes valeurs, par exemple, selon que vous effectuez un déploiement dans un environnement de développement, de test ou de production.

Le modèle précédent déploie toujours un compte de stockage standard localement redondant (LRS) Standard_LRS compte. Vous souhaiterez peut-être déployer différentes unités de conservation des stocks (SKU) en fonction de l’environnement. L’exemple suivant montre les modifications permettant d’ajouter un paramètre pour la référence SKU. Copiez l’intégralité du fichier et collez-le sur votre modèle :

{
  "$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"
      ]
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[parameters('storageName')]",
      "location": "eastus",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Le storageSKU paramètre a une valeur par défaut. Utilisez cette valeur lorsque le déploiement ne le spécifie pas. Il contient également une liste de valeurs autorisées. Ces valeurs correspondent aux valeurs nécessaires pour créer un compte de stockage. Vous souhaitez que les utilisateurs de votre modèle passe des références SKU applicables.

Redéployer le modèle

Vous êtes prêt à déployer à nouveau. Étant donné que la référence SKU par défaut est définie sur Standard_LRS, vous avez déjà fourni une valeur de paramètre.

New-AzResourceGroupDeployment `
  -Name addskuparameter `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storageName "{your-unique-name}"

Note

Si le déploiement échoue, utilisez le verbose commutateur pour obtenir des informations sur les ressources en cours de création. Utilisez ce commutateur debug pour obtenir plus d'informations pour le débogage.

Pour voir la flexibilité de votre modèle, nous allons le déployer à nouveau. Cette fois, réglez le paramètre SKU sur le stockage géoredondant standard (GRS) Standard_GRS. Vous pouvez transmettre un nouveau nom pour créer un autre compte de stockage ou utiliser le même nom pour mettre à jour votre compte de stockage existant. Les deux options fonctionnent.

New-AzResourceGroupDeployment `
  -Name usenondefaultsku `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storageName "{your-unique-name}" `
  -storageSKU Standard_GRS

Enfin, nous allons exécuter un test supplémentaire et voir ce qui se passe quand vous passez une référence SKU qui n’est pas l’une des valeurs autorisées. Dans ce cas, nous testons le scénario dans lequel l’utilisateur de votre modèle pense que basic fait partie des références SKU.

New-AzResourceGroupDeployment `
  -Name testskuparameter `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storageName "{your-unique-name}" `
  -storageSKU basic

La commande échoue immédiatement avec un message d'erreur qui donne les valeurs autorisées. Le processeur ARM trouve l’erreur avant le démarrage du déploiement.

Nettoyer les ressources

Si vous passez au didacticiel suivant, vous n’avez pas besoin de supprimer le groupe de ressources.

Si vous arrêtez maintenant, vous pouvez nettoyer vos ressources déployées en supprimant le groupe de ressources.

  1. Dans le portail Azure, sélectionnez Groupe de ressources dans le menu de gauche.
  2. Tapez le nom du groupe de ressources dans le filtre pour n’importe quel champ ... champ de texte.
  3. Cochez la case en regard de myResourceGroup et sélectionnez myResourceGroup ou votre nom de groupe de ressources.
  4. Sélectionnez Supprimer le groupe de ressources dans le menu supérieur.

Étapes suivantes

Vous avez amélioré le modèle que vous avez créé dans le premier tutoriel en ajoutant des paramètres. Dans le tutoriel suivant, vous allez découvrir les fonctions de modèle.