Tutta la piattaforma Microsoft Azure offre un sistema unificato per la gestione delle risorse tramite molteplici strumenti come PowerShell, CLI e REST API. Che sia un database o una virtual machine, queste risorse sono raggruppate all'interno di un resource group, oltre che alla region di appartenenza. Il sistema di gestione, di nome Azure Resource Manager (ARM), dispone di un meccanismo basato su deployment che prende in carico ogni creazione o modifica che facciamo alle risorse e le esegue mantenendo uno storico.
Questo sistema può essere sfruttato anche per preparare dei template basati su sintassi JSON che definiscono un modello di risorse da creare: database, web app, virtual machine, pricing tier e configurazioni varie. Possono disporre di parametri, di variabili o di funzioni per rendere questi template dinamici in modo da applicarli facilmente ad altre subscription e resource group.
Possiamo sfruttare questa caratteristica anche per clonare una serie di risorse create manualmente dal portale. Pensiamo ad una situazione in cui dobbiamo riprodurre due ambienti, di staging e di produzione, identici nelle configurazioni, oppure portare le risorse su un'altra region per aumentare l'affidabilità. Il portale Azure per questo scopo mette a disposizione una funzione rapida per generare l'XML delle resource group. E' sufficiente andare sul gruppo desiderato e sulla voce Export template.
Il motore genera un JSON per rappresentare completamente tutte le nostre risorse e lo fa dettagliando ogni singola configurazione. Il JSON è molto verboso, per garantire l'uguaglianza nella creazione delle risorse, ma molto probabilmente molte delle configurazioni sono quelle predefinite di ogni risorsa. Anche i parametri in ingresso sono molteplici, ma possiamo sfruttare il pulsante Download per scaricare il JSON e applicare delle modifiche, magari applicando delle regole di generazione dei nomi.
Nell'effettuare il download, oltre al JSON disponiamo dello script PowerShell per effettuare il deploy su un'altra subscription o un altro resource group. In alternativa possiamo creare dal portale una nuova risorsa di tipo Template deployment.
Il wizard ci permette di caricare e modificare un template e di effettuarne direttamente il deploy.
A seconda del numero delle risorse l'operazione può impiegare qualche minuto ed è facile sbagliare qualche impostazione, perciò per lo sviluppo consigliamo di creare sempre un resource group apposito per ogni tentativo di deploy, da andare poi ad eliminare. Da notare, infine, che i deployment possono essere incrementali ed andare ad intervenire anche su resource group già preparati, applicando la differenza tra le impostazioni.
Per altre informazioni: https://docs.microsoft.com/it-it/azure/azure-resource-manager/resource-group-authoring-templates
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare gRPC su App Service di Azure
Limitare le richieste lato server con l'interactive routing di Blazor 8
Creazione di componenti personalizzati in React.js con Tailwind CSS
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Paginare i risultati con QuickGrid in Blazor
Eseguire una query su SQL Azure tramite un workflow di GitHub
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Utilizzare Copilot con Azure Cosmos DB
Migliorare l'organizzazione delle risorse con Azure Policy
Utilizzare Azure Cosmos DB con i vettori
Testare l'invio dei messaggi con Event Hubs Data Explorer