Condividi tramite


Esercitazione: Aggiungere variabili al modello di Azure Resource Manager

In questo tutorial, impari come aggiungere una variabile al tuo modello di Azure Resource Manager (ARM template). Le variabili semplificano i modelli. Consentono di scrivere un'espressione una sola volta e di riutilizzarla in tutto il modello. Il completamento di questa esercitazione richiede 7 minuti .

Prerequisiti

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

È necessario avere Visual Studio Code e Azure PowerShell o l'interfaccia della riga di comando di Azure. Per altre informazioni, vedere Strumenti modello.

Rivedere il modello

Alla fine dell'esercitazione precedente, il modello aveva il file JSON seguente:

{
  "$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": "2025-06-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 univoco per poter continuare a creare facilmente il modello ARM. Se hai completato le esercitazioni precedenti di questa serie, sei stanco di inventare un nome univoco. Per risolvere questo problema, aggiungere una variabile che crea un nome univoco per l'account di archiviazione.

Usare una variabile

Nell'esempio seguente vengono illustrate le modifiche per aggiungere una variabile al modello che crea un nome univoco dell'account di archiviazione. Copiare l'intero file e sostituire il modello con il relativo contenuto:

{
  "$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": "2025-06-01",
      "name": "[variables('uniqueStorageName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

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

Si ha già familiarità con la funzione dei parametri , quindi non verrà esaminata.

Si ha anche familiarità con la funzione resourceGroup . In questo caso, si ottiene la id proprietà anziché la location proprietà , come illustrato nell'esercitazione precedente. La id proprietà restituisce l'identificatore completo del gruppo di risorse, inclusi l'ID sottoscrizione e il nome del gruppo di risorse.

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

La funzione concat accetta i valori e li combina. Per questa variabile, accetta la stringa dal parametro e la stringa dalla uniqueString funzione e le combina in una stringa.

Il storagePrefix parametro consente di passare un prefisso che consente di identificare gli account di archiviazione. È possibile creare una convenzione di denominazione personalizzata che semplifica l'identificazione degli account di archiviazione dopo la distribuzione da un elenco completo di risorse.

Si noti infine che il nome dell'account di archiviazione è ora impostato sulla variabile anziché su un parametro.

Distribuire un modello

A questo punto è possibile distribuire il modello. La distribuzione di questo modello è più semplice rispetto ai modelli precedenti perché si specifica solo il prefisso per il nome dell'account di archiviazione.

Se il gruppo di risorse non è stato creato, vedere Creare un gruppo di risorse. L'esempio presuppone che la templateFile variabile 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

Annotazioni

Se la distribuzione non riesce, usare l'opzione verbose per ottenere informazioni sulle risorse create. Usare l'opzione debug per ottenere altre informazioni per il debug.

Verificare la distribuzione

È possibile verificare la distribuzione esplorando il gruppo di risorse dal portale di Azure.

  1. Accedi al portale di Azure.
  2. Nel menu a sinistra selezionare Gruppi di risorse.
  3. Selezionare il gruppo di risorse.
  4. Si noti che il nome dell'account di storage distribuito è store, oltre a una stringa di caratteri casuali.

Pulire le risorse

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

Se ti fermi ora, potresti voler eliminare il gruppo di risorse.

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

Passaggi successivi

In questa esercitazione si aggiunge una variabile che crea un nome univoco dell'account di archiviazione. Nel tutorial successivo, si restituirà un valore dall'account di archiviazione implementato.