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.
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:
Visual Studio Code con l'estensione Strumenti di Resource Manager. Consultare Avvio rapido: Creare modelli di ARM con Visual Studio Code.
Per una maggiore sicurezza, usare una password generata per l'account amministratore della macchina virtuale. È possibile usare Azure Cloud Shell per eseguire il seguente comando in PowerShell o Bash:
openssl rand -base64 32
Per ulteriori informazioni, eseguire
man openssl rand
per aprire la pagina manuale.Azure Key Vault è progettato per proteggere chiavi crittografiche e altri segreti. Per ulteriori informazioni, consultare Esercitazione: integrare Azure Key Vault nella distribuzione di modelli di ARM. È consigliabile anche aggiornare la password ogni tre mesi.
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.
In Visual Studio Code selezionare File>Apri file.
In Nome file incollare l'URL seguente:
https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.compute/vm-simple-windows/azuredeploy.json
Selezionare Apri per aprire il file.
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?
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
:Sono presenti sei risorse definite dal modello:
Microsoft.Compute/virtualMachines.
È utile esaminare le informazioni di riferimento sul modello prima di personalizzare un modello.
Espandere la prima risorsa. È un account di archiviazione. Confrontare la definizione della risorsa con le informazioni di riferimento sui modelli.
Espandere la seconda risorsa. La risorsa è di tipo
Microsoft.Network/publicIPAddresses
. Confrontare la definizione della risorsa con le informazioni di riferimento sui modelli.Espandere la terza risorsa. La risorsa è di tipo
Microsoft.Network/networkSecurityGroups
. Confrontare la definizione della risorsa con le informazioni di riferimento sui modelli.Espandere la quarta risorsa. La risorsa è di tipo
Microsoft.Network/virtualNetworks
: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
Espandere la quinta risorsa. La risorsa è di tipo
Microsoft.Network/networkInterfaces
. La risorsa dipende da altre due risorse:Microsoft.Network/publicIPAddresses
Microsoft.Network/virtualNetworks
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:
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
Accedere a Cloud Shell.
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.
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
ecat
per verificare che il file sia stato caricato.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
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.
- Nel portale di Azure selezionare Gruppo di risorse nel menu a sinistra.
- Immettere il nome del gruppo di risorse nel campo Filtra per nome.
- Selezionare il nome del gruppo di risorse. Nel gruppo di risorse verrà visualizzato un totale di sei risorse.
- 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: