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
Migrate and Modernize your .NET Applications on Azure
Hosting di componenti WebAssembly in un'applicazione Blazor static
Workflow di continuous deployment tramite pull request label in GitHub
Eseguire attività con Azure Container Jobs
Trasformare qualsiasi backend in un servizio GraphQL con Azure API Management
Recuperare un elemento inserito nella cache del browser tramite API JavaScript
Gestire domini wildcard in Azure Container Apps
Utilizzare politiche di resiliency con Azure Container App
Implementare il throttling in ASP.NET Core
Evitare il flickering dei componenti nel prerender di Blazor 8
C# 12: Cosa c'è di nuovo e interessante
Utilizzare un service principal per accedere a Azure Container Registry