Condividi tramite


Esercitazione: Aggiungere variabili al modello di Resource Manager

Questa esercitazione illustra come aggiungere una variabile al modello di Azure Resource Manager (modello di ARM). Le variabili semplificano i modelli. Consentono di scrivere un'espressione una sola volta e di riutilizzarla in tutto il modello. Per completare l'esercitazione, sono necessari 7 minuti.

Prerequisiti

È consigliabile, ma non obbligatorio, completare l'esercitazione sulle funzioni.

È necessario avere installato Visual Studio Code e usare l'estensione Strumenti di Azure Resource Manager e Azure PowerShell o l'interfaccia della riga di comando di Azure. Per altre informazioni, vedere gli strumenti per i modelli.

Rivedere il modello

Al termine della precedente esercitazione, il modello includeva il seguente codice JSON:

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

Il nome dell’account di archiviazione di Azure deve essere unico per continuare a compilare facilmente il modello di Resource Manager. Se ci si è già cimentati con le precedenti esercitazioni di questa serie, probabilmente non si ha voglia di farsi venire in mente un nome univoco. Per ovviare a questo problema, aggiungere una variabile che costruisce un nome univoco per l'account di archiviazione.

Usare la variabile

Nell'esempio seguente sono evidenziate le modifiche per aggiungere al modello una variabile che crea un nome di account di archiviazione univoco. Copiare l'intero file e sostituire il modello con il contenuto del file.

{
  "$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]"
    }
  },
  "variables": {
    "uniqueStorageName": "[concat(parameters('storagePrefix'), uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2021-09-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Notare che include una variabile denominata uniqueStorageName. Questa variabile usa quattro funzioni per creare un valore stringa.

La funzione parameters è già nota, quindi non verrà esaminata.

Anche la funzione resourceGroup è già nota. In questo caso, si ottiene la proprietà id invece della proprietà location, come illustrato nella precedente esercitazione. La proprietà id restituisce l'identificatore completo del gruppo di risorse, inclusi l'ID della sottoscrizione e il nome del gruppo di risorse.

La funzione uniqueString crea un valore hash di 13 caratteri. I parametri inseriti determinano il valore restituito. Per questa esercitazione come input per il valore hash si userà l'ID del gruppo di risorse. Questo significa che è possibile distribuire questo modello in più gruppi di risorse e ottenere un valore stringa univoco diverso. Tuttavia, si otterrà lo stesso valore se si esegue la distribuzione nello stesso gruppo di risorse.

La funzione concat accetta i valori e li combina. Questa variabile combina la stringa del parametro e quella della funzione uniqueString in un'unica stringa.

Il parametro storagePrefix consente di inserire un prefisso che aiuta ad identificare gli account di archiviazione. È possibile creare una convenzione di denominazione personalizzata per agevolare l'identificazione degli account di archiviazione dopo la distribuzione da un lungo elenco di risorse.

Notare infine che il nome dell'account di archiviazione è ora impostato sulla variabile e non su un parametro.

Distribuire un modello

A questo punto è possibile distribuire il modello. La distribuzione di questo modello è più semplice rispetto ai modelli precedenti, poiché viene specificato solo il prefisso del nome dell'account di archiviazione.

Se non è stato ancora creato il gruppo di risorse, vedere Creare il gruppo di risorse. Nell'esempio si presuppone che la variabile templateFile sia stata impostata sul percorso del file modello, come illustrato nella prima esercitazione.

New-AzResourceGroupDeployment `
  -Name addnamevariable `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storagePrefix "store" `
  -storageSKU Standard_LRS

Nota

Se la distribuzione non riesce, usare l'opzione verbose per ottenere informazioni sulle risorse che si stanno creando. Usare l'opzione debug per ottenere ulteriori informazioni sul debug.

Verificare la distribuzione

Per verificare la distribuzione, esplorare il gruppo di risorse nel portale di Azure.

  1. Accedere al portale di Azure.
  2. Nel menu di sinistra selezionare Gruppi di risorse.
  3. Selezionare il gruppo di risorse.
  4. Notare che il nome dell'account di archiviazione distribuito è store, più una stringa di caratteri casuali.

Pulire le risorse

Se si intende passare all'esercitazione successiva, non è necessario eliminare il gruppo di risorse.

Se invece ci si ferma, è opportuno eliminare il gruppo di risorse.

  1. Nel portale di Azure selezionare Gruppi di risorse nel menu a sinistra.
  2. Digitare il nome del gruppo di risorse nel campo di testo Filtra per qualsiasi campo....
  3. Spuntare la casella accanto a myResourceGroup e selezionare myResourceGroup o il nome del gruppo di risorse.
  4. Selezionare Elimina gruppo di risorse nel menu in alto.

Passaggi successivi

In questa esercitazione si aggiunge una variabile che crea un nome univoco per l'account di archiviazione. Nell'esercitazione successiva si restituirà un valore dall'account di archiviazione distribuito.