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
Migliora la resilienza delle applicazioni con .NET e Azure Container Apps
Esportare ed analizzare le issue di GitHub con la CLI e GraphQL
Migrate and Modernize your .NET Applications on Azure
Eseguire operazioni sui blob con Azure Storage Actions
Eseguire attività pianificate con Azure Container Jobs
Utilizzare la session affinity con Azure Container Apps
Sfruttare MQTT in cloud e in edge con Azure Event Grid
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Migliora le tue soluzioni ASP.NET Core con Azure OpenAI
Potenziare Azure AI Search con la ricerca vettoriale
Creare gruppi di client per Event Grid MQTT
Utilizzare gli snapshot con Azure File shares