Exercice : utiliser des variables Azure Resource Manager pour stocker des expressions

Effectué

Dans cet exercice, vous stockez l’expression du nom de votre compte de stockage Azure dans une variable de modèle Azure Resource Manager (ARM). Ensuite, vous utilisez cette variable pour spécifier le nom du compte de stockage à créer.

Dans cet exercice, nous utilisons les Outils Azure Resource Manager pour Visual Studio Code. Assurez-vous d’installer cette extension dans Visual Studio Code.

Ajouter une variable

Ajoutez une variable pour stocker l’expression de nom de votre compte de stockage dans un espace unique du modèle.

  1. Dans Visual Studio Code, dans le fichier azuredeploy.json, placez votre curseur entre les accolades du bloc des variables "variables":{} et appuyez sur Entrée.

  2. Tapez var à l’intérieur des accolades. Vous voyez une liste d’extraits de code associés. Sélectionnez arm-variable :

    Screenshot of Visual Studio Code that shows the snippets for Azure Resource Manager template variables.

  3. Votre section des variables se présente comme le code suivant :

    "variables": {"variable1": "value"},
    
  4. Remplacez le nom de la variable par uniqueStorageName, puis remplacez la valeur par "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]". Votre section des variables se présente comme le code suivant :

    "variables": {
        "uniqueStorageName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]"
      },
    

    Notez que vous utilisez le paramètre storagePrefix dans l’expression, au lieu d’une chaîne littérale. Sinon, il s’agit de la même expression que celle que vous avez découverte dans l’unité précédente.

  5. Utilisez la variable dans la section des ressources. Modifiez les valeurs des attributs name: et displayName par "[variables('uniqueStorageName')]"

  6. Le fichier complet ressemble à cet exemple :

    {
        "$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"
                ]
            }
       },
        "functions": [],
        "variables": {
        "uniqueStorageName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]"
      },
        "resources": [{
            "name": "[variables('uniqueStorageName')]",
            "type": "Microsoft.Storage/storageAccounts",
            "apiVersion": "2019-06-01",
            "tags": {
                "displayName": "[variables('uniqueStorageName')]"
            },
            "location": "[resourceGroup().location]",
            "kind": "StorageV2",
            "sku": {
             "name": "[parameters('storageSKU')]"
           }
        }],
        "outputs": {}
    }
    

En option, déployer le modèle

Le modèle mis à jour n’ayant pas de modifications apportées à la ressource que vous avez déployée, le déploiement de ce modèle n’apporte donc aucune modification à votre environnement Azure.

Si vous voulez déployer ce modèle, utilisez les commandes Azure CLI suivantes. Veillez à utiliser la même valeur de paramètre storagePrefix que celle utilisée dans le dernier déploiement.

templateFile="azuredeploy.json"
today=$(date +"%d-%b-%Y")
DeploymentName="addVariable-"$today

az deployment group create \
  --name $DeploymentName \
  --template-file $templateFile \
  --parameters storagePrefix={your-Prefix}

Si vous voulez déployer ce modèle, utilisez les commandes Azure PowerShell suivantes. Veillez à utiliser la même valeur de paramètre storagePrefix que celle utilisée dans le dernier déploiement.

$templateFile = "azuredeploy.json"
$today=Get-Date -Format "MM-dd-yyyy"
$deploymentName="addVariable-"+"$today"
New-AzResourceGroupDeployment `
  -Name $deploymentName `
  -TemplateFile $templateFile `
  -storagePrefix {your-Prefix}