Esercizio: Usare le variabili di Azure Resource Manager per archiviare le espressioni

Completato

In questo esercizio l'espressione del nome dell'account di archiviazione di Azure viene archiviata in una variabile del modello di Azure Resource Manager (ARM). Usare quindi tale variabile per specificare il nome dell'account di archiviazione da creare.

In questo esercizio si usano gli Strumenti di Azure Resource Manager per Visual Studio Code. Assicurarsi di installare questa estensione in Visual Studio Code.

Aggiungere una variabile

Aggiungere una variabile per archiviare l'espressione del nome dell'account di archiviazione in un'unica posizione nel modello.

  1. Nel file azuredeploy.json in Visual Studio Code posizionare il cursore tra le parentesi graffe nel blocco delle variabili "variables":{} e premere INVIO.

  2. Digitare var all'interno delle parentesi. Viene visualizzato un elenco dei frammenti di codice correlati. Selezionare arm-variable:

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

  3. La sezione variables è simile al codice seguente:

    "variables": {"variable1": "value"},
    
  4. Modificare il nome della variabile in uniqueStorageName e modificare il valore in "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]". La sezione variables è simile al codice seguente:

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

    Si noti che si sta usando il parametro storagePrefix nell'espressione invece di una stringa letterale. In caso contrario, questa espressione sarà la stessa descritta nell'unità precedente.

  5. Usare la variabile nella sezione resources. Modificare i valori degli attributi name: e displayName in "[variables('uniqueStorageName')]"

  6. L'intero file è simile all'esempio seguente:

    {
        "$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": {}
    }
    

Distribuire facoltativamente il modello

Poiché il modello aggiornato non presenta alcuna modifica alla risorsa distribuita, la distribuzione del modello non apporta alcuna modifica all'ambiente di Azure.

Per distribuire il modello per verificarne l'esito positivo, usare i comandi dell'interfaccia della riga di comando di Azure seguenti. Assicurarsi di usare lo stesso valore del parametro storagePrefix usato nell'ultima distribuzione.

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

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

Per distribuire il modello per verificarne l'esito positivo, usare i comandi dell'interfaccia della riga di comando di Azure PowerShell seguenti. Assicurarsi di usare lo stesso valore del parametro storagePrefix usato nell'ultima distribuzione.

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