Condividi tramite


Esercitazione: Aggiungere funzioni di modello al template di Azure Resource Manager

In questa esercitazione, imparerai come aggiungere funzioni del modello al modello di Azure Resource Manager (modello di ARM). Le funzioni vengono usate per costruire in modo dinamico i valori. Oltre a queste funzioni modello fornite dal sistema, è anche possibile creare funzioni definite dall'utente. Il completamento di questa esercitazione richiede 7 minuti .

Prerequisiti

È consigliabile completare l'esercitazione sui parametri, 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"
      ]
    }
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2025-06-01",
      "name": "[parameters('storageName')]",
      "location": "eastus",
      "sku": {
        "name": "[parameters('storageSKU')]"
      },
      "kind": "StorageV2",
      "properties": {
        "supportsHttpsTrafficOnly": true
      }
    }
  ]
}

Si supponga di aver codificato in modo rigido la posizione geografica dell'account di archiviazione di Azure in eastus, ma è necessario distribuirlo in un'altra area. È necessario aggiungere un parametro per aggiungere flessibilità al modello e consentire di avere una posizione diversa.

Usa la funzione

Se è stata completata l'esercitazione sui parametri, è stata usata una funzione . Quando è stato aggiunto "[parameters('storageName')]", è stata usata la funzione parameters . Le parentesi quadre indicano che la sintassi all'interno delle parentesi quadre è un'espressione modello. Resource Manager risolve la sintassi anziché considerarla come valore letterale.

Le funzioni aggiungono flessibilità al modello recuperando in modo dinamico i valori durante la distribuzione. In questa esercitazione si usa una funzione per ottenere il percorso di distribuzione del gruppo di risorse.

Nell'esempio seguente vengono evidenziate le modifiche per aggiungere un parametro denominato location. Il valore predefinito del parametro chiama la funzione resourceGroup . Questa funzione restituisce un oggetto con informazioni sul gruppo di risorse distribuito. Una delle proprietà dell'oggetto è una proprietà di posizione. Quando si usa il valore predefinito, l'account di archiviazione e il gruppo di risorse hanno la stessa posizione. Le risorse all'interno di un gruppo hanno posizioni diverse.

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

Distribuire un modello

Nelle esercitazioni precedenti è stato creato un account di archiviazione negli Stati Uniti orientali, ma il gruppo di risorse viene creato negli Stati Uniti centrali. Per questa esercitazione viene creato un account di archiviazione nella stessa area del gruppo di risorse. Usare il valore predefinito per location, quindi non è necessario specificare il valore del parametro. È necessario specificare un nuovo nome per l'account di archiviazione perché si sta creando un account di archiviazione in una posizione diversa. Usare store2, ad esempio, come prefisso anziché store1.

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 addlocationparameter `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storageName "{new-unique-name}"

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 la casella a sinistra di myResourceGroup e selezionare myResourceGroup.
  4. Selezionare il gruppo di risorse creato. Il nome predefinito è myResourceGroup.
  5. Si noti che l'account di archiviazione distribuito e il gruppo di risorse hanno la stessa localizzazione.

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 usa una funzione per definire il valore predefinito per un parametro. In questa serie di esercitazioni si continuerà a usare le funzioni. Alla fine della serie, si aggiungono funzioni a ogni sezione del modello.