Condividi tramite


Esercitazione: Aggiungere output al modello di Azure Resource Manager

Questa esercitazione descrive come restituire un valore dal modello di Azure Resource Manager (modello arm). Gli output vengono usati quando è necessario un valore per una risorsa distribuita. Il completamento di questa esercitazione richiede 7 minuti .

Prerequisiti

È consigliabile completare l'esercitazione sulle variabili, 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 ha il codice JSON 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"
      ]
    },
    "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
      }
    }
  ]
}

Distribuisce un account di archiviazione, ma non restituisce informazioni su di esso. Potrebbe essere necessario acquisire le proprietà dalla nuova risorsa in modo che siano disponibili in un secondo momento per riferimento.

Aggiungere gli output

È possibile usare gli output per restituire valori dal modello. Potrebbe essere utile, ad esempio, ottenere gli endpoint per il nuovo account di archiviazione.

Nell'esempio seguente viene evidenziata la modifica al modello per aggiungere un valore di output. 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
      }
    }
  ],
  "outputs": {
    "storageEndpoint": {
      "type": "object",
      "value": "[reference(variables('uniqueStorageName')).primaryEndpoints]"
    }
  }
}

Esistono alcuni elementi importanti da notare sul valore di output aggiunto.

Il tipo di valore restituito è impostato su object, il che significa che restituisce un oggetto JSON.

Usa la funzione di riferimento per ottenere lo stato di runtime dell'account di archiviazione. Per ottenere lo stato di runtime di una risorsa, passare il nome o l'ID di una risorsa. In questo caso, si usa la stessa variabile usata per creare il nome dell'account di archiviazione.

Infine, restituisce la primaryEndpoints proprietà dall'account di archiviazione.

Distribuire un modello

Si è pronti per distribuire il modello e osservare il valore restituito.

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 addoutputs `
  -ResourceGroupName myResourceGroup `
  -TemplateFile $templateFile `
  -storagePrefix "store" `
  -storageSKU Standard_LRS

Nell'output per il comando di distribuzione viene visualizzato un oggetto simile all'esempio seguente solo se l'output è in formato JSON:

{
    "dfs": "https://storeluktbfkpjjrkm.dfs.core.windows.net/",
    "web": "https://storeluktbfkpjjrkm.z19.web.core.windows.net/",
    "blob": "https://storeluktbfkpjjrkm.blob.core.windows.net/",
    "queue": "https://storeluktbfkpjjrkm.queue.core.windows.net/",
    "table": "https://storeluktbfkpjjrkm.table.core.windows.net/",
    "file": "https://storeluktbfkpjjrkm.file.core.windows.net/"
}

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.

Rivedi il tuo lavoro

Hai fatto molto nelle ultime sei esercitazioni. Diamo un po' di tempo per esaminare le operazioni eseguite. È stato creato un modello con parametri facili da fornire. Il modello è riutilizzabile in ambienti diversi perché consente la personalizzazione e crea in modo dinamico i valori necessari. Restituisce anche informazioni sull'account di archiviazione che è possibile usare nello script.

Si esaminerà ora il gruppo di risorse e la cronologia della distribuzione.

  1. Accedi al portale di Azure.

  2. Nel menu a sinistra selezionare Gruppi di risorse.

  3. Selezionare il gruppo di risorse in cui è stato distribuito.

  4. A seconda della procedura, è necessario avere almeno uno e forse più account di archiviazione nel gruppo di risorse.

  5. oltre a diverse distribuzioni riuscite nella cronologia. Selezionare il collegamento.

    Screenshot del portale di Azure che mostra il collegamento alle distribuzioni.

  6. Vengono visualizzate tutte le distribuzioni presenti nella cronologia. Selezionare la distribuzione denominata addoutputs.

    Screenshot del portale di Azure che mostra la cronologia di distribuzione.

  7. È possibile esaminare gli input.

    Screenshot del portale di Azure che mostra gli input di distribuzione.

  8. È possibile esaminare gli output.

    Screenshot del portale di Azure che mostra gli output della distribuzione.

  9. È possibile esaminare il modello.

    Screenshot del portale di Azure che mostra il modello di distribuzione.

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 questo tutorial, hai aggiunto un valore di ritorno al modello. Nell'esercitazione successiva si apprenderà come esportare un modello e usare parti del modello esportato nel modello.