Condividi tramite


Esercitazione: Creare modelli di ARM con risorse dipendenti

Informazioni su come creare un modello di Azure Resource Manager (modello di ARM) per distribuire più risorse e configurare l'ordine di distribuzione. Dopo aver creato il modello, distribuirlo usando Azure Cloud Shell dal portale di Azure.

In questa esercitazione si creano un account di archiviazione, una macchina virtuale, una rete virtuale e alcune altre risorse dipendenti. Alcune delle risorse non possono essere distribuite finché non esiste un'altra risorsa. Ad esempio, non è possibile creare la macchina virtuale finché non esistono la relativa interfaccia di rete e l'account di archiviazione. Questa relazione viene definita rendendo una risorsa dipendente dalle altre risorse. Resource Manager valuta le dipendenze tra le risorse e le distribuisce in base all'ordine di dipendenza. Quando le risorse non sono interdipendenti, Resource Manager le distribuisce in parallelo. Per altre informazioni, vedere Definire l'ordine per la distribuzione delle risorse nei modelli di Azure Resource Manager.

Diagramma che mostra l'ordine di distribuzione delle risorse dipendenti in un modello di Resource Manager.

Questa esercitazione illustra le attività seguenti:

  • Aprire un modello di avvio rapido
  • Esplorare il modello
  • Distribuire il modello

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Per un modulo Learn che illustra le dipendenze delle risorse, consultare Gestire distribuzioni cloud complesse usando le funzionalità avanzate dei modelli di ARM.

Prerequisiti

Per completare questo articolo, devi avere quanto segue:

Aprire un modello di avvio rapido

Modelli di avvio rapido di Azure è un repository di modelli di Azure Resource Manager. Anziché creare un modello da zero, è possibile trovare un modello di esempio e personalizzarlo. Il modello usato in questa esercitazione è denominato Distribuire una VM Windows semplice.

  1. In Visual Studio Code selezionare File>Apri file.

  2. In Nome file incollare l'URL seguente:

    https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
    
  3. Selezionare Apri per aprire il file.

  4. Selezionare File>Salva con nome per salvare una copia del file con il nome azuredeploy.json nel computer locale.

Esplorare il modello

Quando si esplora il modello in questa sezione, provare a rispondere alle domande seguenti:

  • Quante risorse di Azure sono definite in questo modello?
  • Una delle risorse è un account di archiviazione di Azure. La definizione è simile a quella usata nell'ultima esercitazione?
  • È possibile trovare i riferimenti del modello per le risorse definite in questo modello?
  • È possibile trovare le dipendenze delle risorse?
  1. Da Visual Studio Code, comprimere gli elementi finché non vengono visualizzati solo gli elementi di primo livello e quelli di secondo livello all'interno di resources:

    Screenshot di Visual Studio Code che mostra un modello di Resource Manager con elementi compressi.

    Sono presenti sei risorse definite dal modello:

  2. Espandere la prima risorsa. È un account di archiviazione. Confrontare la definizione della risorsa con le informazioni di riferimento sui modelli.

    Screenshot di Visual Studio Code che mostra la definizione dell'account di archiviazione in un modello di Resource Manager.

  3. Espandere la seconda risorsa. La risorsa è di tipo Microsoft.Network/publicIPAddresses. Confrontare la definizione della risorsa con le informazioni di riferimento sui modelli.

    Screenshot di Visual Studio Code che mostra la definizione dell'indirizzo IP pubblico in un modello di Resource Manager.

  4. Espandere la terza risorsa. La risorsa è di tipo Microsoft.Network/networkSecurityGroups. Confrontare la definizione della risorsa con le informazioni di riferimento sui modelli.

    Screenshot di Visual Studio Code che mostra la definizione del gruppo di sicurezza di rete in un modello di Resource Manager.

  5. Espandere la quarta risorsa. La risorsa è di tipo Microsoft.Network/virtualNetworks:

    Screenshot di Visual Studio Code che mostra la definizione di rete virtuale con l'elemento dependsOn in un modello di Resource Manager.

    L'elemento dependsOn consente di definire una risorsa come dipendente da una o più risorse. Questa risorsa dipende da un'altra risorsa:

    • Microsoft.Network/networkSecurityGroups
  6. Espandere la quinta risorsa. La risorsa è di tipo Microsoft.Network/networkInterfaces. La risorsa dipende da altre due risorse:

    • Microsoft.Network/publicIPAddresses
    • Microsoft.Network/virtualNetworks
  7. Espandere la sesta risorsa. Questa risorsa è una macchina virtuale. Dipende da altre due risorse:

    • Microsoft.Storage/storageAccounts
    • Microsoft.Network/networkInterfaces

Il diagramma seguente illustra le risorse e le informazioni sulle dipendenze per questo modello:

Diagramma che mostra le relazioni di dipendenza tra le risorse in un modello di Resource Manager visualizzato in Visual Studio Code.

Specificando le dipendenze, Resource Manager distribuisce in modo efficiente la soluzione. Distribuisce l'account di archiviazione, l'indirizzo IP pubblico e la rete virtuale in parallelo poiché non hanno dipendenze. Dopo aver distribuito l'indirizzo IP pubblico e la rete virtuale, viene creata l'interfaccia di rete. Quando sono state distribuite tutte le altre risorse, Resource Manager distribuisce la macchina virtuale.

Distribuire il modello

  1. Accedere a Cloud Shell.

  2. Scegliere l'ambiente preferito selezionando PowerShell o Bash (per l'interfaccia della riga di comando) nell'angolo superiore sinistro. Riavviare la shell quando si passa.

    Screenshot di portale di Azure Cloud Shell con l'opzione di caricamento del file evidenziata.

  3. Selezionare Carica/Scarica file e quindi Carica. Vedere lo screenshot precedente. Selezionare il file salvato in precedenza. Dopo aver caricato il file, usare il ls comando e il cat comando per verificare che il file sia stato caricato correttamente.

  4. Per distribuire il modello, eseguire lo script di PowerShell seguente.

    echo "Enter a project name that is used to generate resource group name:" &&
    read projectName &&
    echo "Enter the location (i.e. centralus):" &&
    read location &&
    echo "Enter the virtual machine admin username:" &&
    read adminUsername &&
    echo "Enter the DNS label prefix:" &&
    read dnsLabelPrefix &&
    resourceGroupName="${projectName}rg" &&
    az group create --name $resourceGroupName --location $location &&
    az deployment group create --resource-group $resourceGroupName --template-file "$HOME/azuredeploy.json" --parameters adminUsername=$adminUsername dnsLabelPrefix=$dnsLabelPrefix
    
  5. RDP alla macchina virtuale per verificare che la macchina virtuale sia stata creata correttamente.

Pulire le risorse

Quando le risorse di Azure non sono più necessarie, pulire le risorse distribuite eliminando il gruppo di risorse.

  1. Nel portale di Azure selezionare Gruppo di risorse nel menu a sinistra.
  2. Immettere il nome del gruppo di risorse nel campo Filtra per nome.
  3. Selezionare il nome del gruppo di risorse. Nel gruppo di risorse viene visualizzato un totale di sei risorse.
  4. Selezionare Elimina gruppo di risorse nel menu in alto.

Passaggi successivi

In questa esercitazione è stato sviluppato e distribuito un modello per creare una macchina virtuale, una rete virtuale e le risorse dipendenti. Per informazioni su come usare gli script di distribuzione per eseguire operazioni di pre/post-distribuzione, vedere: