Le Azure Web App sono lo strumento principale per la distribuzione di applicativi web sul cloud di Microsoft. Ci sono parecchi metodi per caricare su di esse il nostro applicativo: web deploy, REST e continuos delivery tramite repository esterni come DropBox, Git o Visual Studio Team Services.
Di recente è stata introdotta la possibilità di eseguire la nostra app senza un effettivo deployment, facendolo puntare la web app ad un file Zip remoto. Ipotizziamo quindi di preparare le nostre pagine HTML e di creare un unico file che contenga tutto il necessario, anche sfruttando la funzione publish di .NET, per esempio. Possiamo caricare il file online, come per esempio su Azure Storage che si presta bene anche per nascondere i file e renderli accessibili tramite firma.
Successivamente non ci resta che aprire le impostazioni dell'app e aggiungere una chiave speciale WEBSITE_USE_ZIP, come mostrato nell'immagine.

Fatto questo, il classico percorso d:\home\wwwroot viene sostituito puntando al file remoto. Questo porta alcuni vantaggi:
- Atomicità nella distribuzione: non corriamo rischi di lock di file, di conflitti e non dobbiamo gestire la cancellazione di file addizionali. Cambiando il percorso tutto l'applicativo punta al nuovo file;
- Versionamento facilitato: è sufficiente cambiare l'indirizzo e in un attimo possiamo cambiare la versione corrente dell'applicativo.
Questa funzionalità non preclude le altre. Ad eccezione del percorso prima citato, le altre cartelle rimangono in scrittura e ogni caratteristica configurabile rimane funzionante.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Estrarre dati randomici da una lista di oggetti in C#
Ordinare randomicamente una lista in C#
Creare un webhook in Azure DevOps
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Gestire i dati con Azure Cosmos DB Data Explorer
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Triggerare una pipeline su un altro repository di Azure DevOps
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Path addizionali per gli asset in ASP.NET Core MVC
Creare una libreria CSS universale: i bottoni
Gestione degli stili CSS con le regole @layer
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento