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
Combinare Container Queries e Media Queries
.NET Conference Italia 2024
Eseguire i worklow di GitHub su runner potenziati
Disabilitare automaticamente un workflow di GitHub
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Eliminare una project wiki di Azure DevOps
Configurare e gestire sidecar container in Azure App Service
Miglioramenti agli screen reader e al contrasto in Angular
Ordinare randomicamente una lista in C#
Configurare lo startup di applicazioni server e client con .NET Aspire
Cambiare la chiave di partizionamento di Azure Cosmos DB
Utilizzare il nuovo modello GPT-4o con Azure OpenAI