Gérer plusieurs déploiements Azure à l’aide des balises du modèle Azure Resource Manager et des fichiers de paramètres

Effectué

Il existe deux fonctionnalités de modèles Azure Resource Manager (ARM) que vous souhaitez utiliser lorsque vous déployez sur plusieurs environnements Azure. Ces fonctionnalités sont les étiquettes de ressource et les fichiers de paramètres de modèle ARM.

Lorsque vous ajoutez d’autres ressources à vos environnements, vous constatez rapidement que vous avez besoin d’un moyen d’identifier l’objectif de ces ressources. Les ressources ont un attribut tags: à cet effet. Lorsque vous déployez sur d’autres environnements, vous avez besoin d’un moyen efficace de suivre les paramètres d’entrée. Les modèles ARM peuvent utiliser des fichiers de paramètres pour gérer les paramètres de chaque environnement de déploiement.

Qu’est-ce qu’une étiquette de ressource Azure ?

Vous pouvez étiqueter des ressources pour ajouter des valeurs qui vous aident à identifier leur utilisation. Par exemple, vous pouvez ajouter des étiquettes qui indiquent l’environnement et le projet auxquels la ressource appartient. Vous pouvez aussi ajouter des étiquettes qui identifient un centre de coûts ou l’équipe propriétaire d’une ressource. Ajoutez des valeurs qui ont un sens pour votre organisation.

La valeur de balise s’affiche sur la page vue d’ensemble de la ressource Azure et dans les rapports de coûts.

Comment créer une étiquette de ressource Azure ?

Chaque ressource a un attribut tags:. Jusqu’à présent, vous avez utilisé le displayName par défaut comme étiquette pour votre compte de stockage :

"tags": {
          "displayName": "[parameters('storageName')]"
        },

Pour rendre cet attribut plus pratique, vous pouvez définir un paramètre qui contient plus d’informations, puis utiliser ce paramètre dans l’attribut tags:. Par exemple, vous pouvez créer un paramètre pour contenir un objet appelé resourceTags :

"resourceTags": {
    "type": "object",
    "defaultValue": {
        "Environment": "Dev",
        "Project": "Inventory"
        }
    }

Ici, vous avez créé un objet pour contenir des valeurs pour un nom d’environnement et un nom de projet, mais vous pouvez définir tout ce que vous souhaitez.

Vous pouvez ensuite utiliser ce paramètre pour n’importe quelle ressource destinée à l’environnement de développement et au projet d’inventaire ; par exemple, votre compte de stockage.

"resources": [{
        "name": "[variables('uniqueStorageName')]",
        "type": "Microsoft.Storage/storageAccounts",
        "apiVersion": "2019-06-01",
        "tags": "[parameters('resourceTags')]",
        ...
    }],

Qu’est-ce qu’un fichier de paramètres de modèle ARM ?

Un fichier de paramètres de modèle ARM contient des valeurs transmises au modèle ARM lors de l’exécution du modèle. En utilisant un fichier de paramètres pour chaque environnement sur lequel un modèle ARM est déployé, vous vérifiez que les paramètres corrects sont définis pour cet environnement spécifique. Vous garantissez aussi que vous pouvez suivre l’historique et la maintenance de ces valeurs de paramètres dans le contrôle de code source.

Comment utiliser des fichiers de paramètres de modèle ARM ?

Les fichiers de paramètres de modèle ARM sont des fichiers JSON qui contiennent des valeurs de paramètres. Par exemple, pour les paramètres que vous avez utilisés dans le modèle ARM jusqu’à présent, vous pouvez créer un fichier de paramètres de modèle comme suit :

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

Vous pourriez ensuite créer un fichier similaire à celui-ci pour chaque environnement. Par exemple, ces fichiers peuvent être appelés azuredeploy.parameters.dev.json et azuredeploy.parameters.prod.json, et contenir des valeurs différentes pour les paramètres.

Pour déployer un modèle ARM à l’aide d’un fichier de paramètres, spécifiez le chemin d’accès au fichier de paramètres dans la commande de déploiement. Dans Azure CLI, vous utilisez --parameters {path to parameter file}. Dans PowerShell, vous utilisez -TemplateParameterFile {path to parameter file}.

templateFile="{path-to-the-template-file}"
devParameterFile="{path-to-azuredeploy.parameters.dev.json}"
az group create \
  --name myResourceGroupDev \
  --location "East US"
az deployment group create \
  --name devenvironment \
  --resource-group myResourceGroupDev \
  --template-file $templateFile \
  --parameters $devParameterFile