Partager via


Tutoriel : Utiliser des fichiers de paramètres pour déployer un modèle Azure Resource Manager

Dans ce tutoriel, vous allez apprendre à utiliser des fichiers de paramètres pour stocker les valeurs que vous transmettez pendant le déploiement. Dans les didacticiels précédents, vous avez utilisé des paramètres inline avec votre commande de déploiement. Cette approche a fonctionné pour tester votre modèle Azure Resource Manager (modèle ARM), mais lors de l’automatisation des déploiements, il peut être plus facile de passer un ensemble de valeurs pour votre environnement. Les fichiers de paramètres facilitent le package des valeurs de paramètres pour un environnement spécifique. Dans ce tutoriel, vous allez créer des fichiers de paramètres pour les environnements de développement et de production. Cette instruction prend 12 minutes .

Prerequisites

Nous vous recommandons de suivre le didacticiel sur les balises, 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

Votre modèle a de nombreux paramètres que vous pouvez fournir pendant le déploiement. À la fin du didacticiel précédent, votre modèle comportait le fichier JSON suivant :

{
  "$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]"
    },
    "appServicePlanName": {
      "type": "string",
      "defaultValue": "exampleplan"
    },
    "webAppName": {
      "type": "string",
      "metadata": {
        "description": "Base name of the resource such as web app name and app service plan "
      },
      "minLength": 2
    },
    "linuxFxVersion": {
      "type": "string",
      "defaultValue": "php|7.0",
      "metadata": {
        "description": "The Runtime stack of current web app"
      }
    },
    "resourceTags": {
      "type": "object",
      "defaultValue": {
        "Environment": "Dev",
        "Project": "Tutorial"
      }
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]",
    "webAppPortalName": "[concat(parameters('webAppName'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "tags": "[parameters('resourceTags')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    },
    {
      "type": "Microsoft.Web/serverfarms",
      "apiVersion": "2025-03-01",
      "name": "[parameters('appServicePlanName')]",
      "location": "[parameters('location')]",
      "tags": "[parameters('resourceTags')]",
      "sku": {
        "name": "B1",
        "tier": "Basic",
        "size": "B1",
        "family": "B",
        "capacity": 1
      },
      "kind": "linux",
      "properties": {
        "perSiteScaling": false,
        "reserved": true,
        "targetWorkerCount": 0,
        "targetWorkerSizeId": 0
      }
    },
    {
      "type": "Microsoft.Web/sites",
      "apiVersion": "2025-03-01",
      "name": "[variables('webAppPortalName')]",
      "location": "[parameters('location')]",
      "dependsOn": [
        "[parameters('appServicePlanName')]"
      ],
      "tags": "[parameters('resourceTags')]",
      "kind": "app",
      "properties": {
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', parameters('appServicePlanName'))]",
        "siteConfig": {
          "linuxFxVersion": "[parameters('linuxFxVersion')]"
        }
      }
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
    }
  }
}

Ce modèle fonctionne bien, mais vous souhaitez maintenant gérer facilement les paramètres que vous transmettez pour le modèle.

Ajouter des fichiers de paramètres

Les fichiers de paramètres sont des fichiers JSON avec une structure similaire à votre modèle. Dans le fichier, vous fournissez les valeurs de paramètre que vous souhaitez transmettre pendant le déploiement.

Dans le fichier de paramètres, vous fournissez des valeurs pour les paramètres de votre modèle. Le nom de chaque paramètre de votre fichier de paramètres doit correspondre au nom d’un paramètre dans votre modèle. Le nom ne respecte pas la casse, mais pour voir facilement les valeurs correspondantes, nous vous recommandons de faire correspondre la casse du modèle.

Vous n’avez pas besoin de fournir une valeur pour chaque paramètre. Si un paramètre non spécifié a une valeur par défaut, cette valeur est utilisée pendant le déploiement. Si un paramètre n’a pas de valeur par défaut et n’est pas spécifié dans le fichier de paramètres, vous êtes invité à fournir une valeur pendant le déploiement.

Vous ne pouvez pas spécifier un nom de paramètre dans votre fichier de paramètres qui ne correspond pas à un nom de paramètre dans le modèle. Vous obtenez une erreur lorsque vous fournissez des paramètres inconnus.

Dans Visual Studio Code, créez un fichier avec le contenu suivant. Enregistrez le fichier avec le nom azuredeploy.parameters.dev.json:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "value": "devstore"
    },
    "storageSKU": {
      "value": "Standard_LRS"
    },
    "appServicePlanName": {
      "value": "devplan"
    },
    "webAppName": {
      "value": "devapp"
    },
    "resourceTags": {
      "value": {
        "Environment": "Dev",
        "Project": "Tutorial"
      }
    }
  }
}

Ce fichier est votre fichier de paramètres pour l’environnement de développement. Notez qu’elle utilise Standard_LRS pour le compte de stockage, nomme les ressources avec un préfixe de développement et définit la Environment balise sur Dev.

Là encore, créez un fichier avec le contenu suivant. Enregistrez le fichier avec le nom azuredeploy.parameters.prod.json:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "value": "contosodata"
    },
    "storageSKU": {
      "value": "Standard_GRS"
    },
    "appServicePlanName": {
      "value": "contosoplan"
    },
    "webAppName": {
      "value": "contosowebapp"
    },
    "resourceTags": {
      "value": {
        "Environment": "Production",
        "Project": "Tutorial"
      }
    }
  }
}

Ce fichier est votre fichier de paramètres pour l’environnement de production. Notez qu’il utilise Standard_GRS pour le compte de stockage, nomme les ressources avec un préfixe contoso et définit la Environment balise sur Production. Dans un environnement de production réel, vous souhaitez également utiliser un service d’application avec une référence SKU autre que gratuite, mais nous utilisons cette référence SKU pour ce didacticiel.

Déployer un modèle

Utilisez Azure CLI ou Azure PowerShell pour déployer le modèle.

En guise de test final de votre modèle, nous allons créer deux nouveaux groupes de ressources un pour l’environnement de développement et un pour l’environnement de production.

Pour les variables de modèle et de paramètre, remplacez {path-to-the-template-file}, {path-to-azuredeploy.parameters.dev.json}, {path-to-azuredeploy.parameters.prod.json} et les accolades {} par vos chemins de fichier de modèle et de paramètres.

Tout d’abord, nous allons déployer dans l’environnement de développement.

$templateFile = "{path-to-the-template-file}"
$parameterFile="{path-to-azuredeploy.parameters.dev.json}"
New-AzResourceGroup `
  -Name myResourceGroupDev `
  -Location "East US"
New-AzResourceGroupDeployment `
  -Name devenvironment `
  -ResourceGroupName myResourceGroupDev `
  -TemplateFile $templateFile `
  -TemplateParameterFile $parameterFile

À présent, nous déployons dans l’environnement de production.

$parameterFile="{path-to-azuredeploy.parameters.prod.json}"
New-AzResourceGroup `
  -Name myResourceGroupProd `
  -Location "West US"
New-AzResourceGroupDeployment `
  -Name prodenvironment `
  -ResourceGroupName myResourceGroupProd `
  -TemplateFile $templateFile `
  -TemplateParameterFile $parameterFile

Note

Si le déploiement échoue, utilisez le verbose commutateur pour obtenir des informations sur les ressources que vous créez. Utilisez ce commutateur debug pour obtenir plus d'informations pour le débogage.

Vérifier le déploiement

Vous pouvez vérifier le déploiement en explorant les groupes de ressources à partir du portail Azure.

  1. Connectez-vous au portail Azure.
  2. Dans le menu de gauche, sélectionnez Groupes de ressources.
  3. Vous voyez les deux nouveaux groupes de ressources que vous déployez dans ce tutoriel.
  4. Sélectionnez l’un ou l’autre groupe de ressources et affichez les ressources déployées. Notez qu’ils correspondent aux valeurs que vous avez spécifiées dans votre fichier de paramètres pour cet environnement.

Nettoyer les ressources

  1. Dans le portail Azure, sélectionnez Groupes de ressources dans le menu de gauche.

  2. Sélectionnez le nom du groupe de ressources hyperliées à côté de la case à cocher. Si vous effectuez cette série, vous avez trois groupes de ressources à supprimer : myResourceGroup, myResourceGroupDev et myResourceGroupProd.

  3. Sélectionnez l’icône Supprimer le groupe de ressources dans le menu supérieur.

    Caution

    La suppression d’un groupe de ressources est irréversible.

  4. Tapez le nom du groupe de ressources dans la fenêtre contextuelle qui affiche et sélectionnez Supprimer.

Étapes suivantes

Félicitations. Vous avez terminé cette introduction au déploiement de modèles sur Azure. Faites-nous savoir si vous avez des commentaires et des suggestions dans la section commentaires.

La série de tutoriels suivante décrit plus en détail le déploiement de modèles.