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 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. Per definire questa relazione, si contrassegna una risorsa come dipendente dalle altre. 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.

Diagram that shows the deployment order of dependent resources in a Resource Manager template.

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 of Visual Studio Code displaying an ARM template with collapsed elements.

    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 of Visual Studio Code showing the storage account definition in an ARM template.

  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 of Visual Studio Code showing the public IP address definition in an ARM template.

  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 of Visual Studio Code showing the network security group definition in an ARM template.

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

    Screenshot of Visual Studio Code showing the virtual network definition with dependsOn element in an ARM template.

    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:

Diagram that shows the dependency relationships between resources in an ARM template displayed 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 in alto a sinistra. Quando si cambia interfaccia, è necessario riavviare la shell.

    Screenshot of Azure portal Cloud Shell with the upload file option highlighted.

  3. Selezionare Carica/Scarica file e quindi Carica. Vedere l'immagine sopra riportata. Selezionare il file salvato in precedenza. Dopo aver caricato il file, è possibile usare i comandi ls e cat per verificare che il file sia stato caricato.

  4. quindi eseguire lo script di PowerShell seguente per distribuire il modello.

    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. Connettersi tramite RDP alla macchina virtuale per verificare che sia stata creata correttamente.

Pulire le risorse

Quando non sono più necessarie, eseguire la pulizia delle risorse di Azure 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 verrà 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: