Pubblicazione rapida in Azure di applicazioni .NET in ambiente Linux

Le possibilità di pubblicazione di applicazioni .NET in Azure è stata ampliata e potenziata negli ultimi mesi. In particolare sul fronte delle applicazioni .NET in ambiente Linux.

Microsoft ha potenziato la pubblicazione di web app da Visual Studio e da processo CI/CD attraverso la possibilità di rilasciare le applicazioni .NET in ambiente Linux.

Le applicazioni sviluppate con framework .NET Core 6 o 7 oppure con Node.js, possono essere pubblicate attraverso il servizio Azure Web App e la destinazione può essere Windows oppure Linux.

Le applicazioni .NET in ambiente Linux godono del vantaggio di essere meno esose perché sfruttano una macchina virtuale altamente specializzata a bassissimo consumo di risorse.

Pubblicazione da Visual Studio

Per pubblicare un’applicazione da Visual Studio è sufficiente creare l’Application Service Plan nel portale di Azure:

selezionando Linux come sistema operativo della app.

Adesso potete creare la Web App all’interno del vostro Resource Group e potete selezionare il Service Plan precedente oppure uno già esistente:

Adesso potete iniziare il processo di pubblicazione di una o più applicazioni .NET in ambiente Linux.

A questo punto potete entrare nella configurazione della app e scaricare il Publish Profile:

Ora è necessario entrare in Visual Studio e procedere ad importare il file che avete scaricato:

dovete utilizzare l’ultima voce, Import Profile.

Questa importazione creerà tre distinti profili di pubblicazione:

  • FTP
  • ZIP
  • Web Deploy

Il primo e il secondo sono simili.
Il profilo FTP copia uno ad uno tutti i file predisposti dal sistema di build, mentre il profilo ZIP crea un unico file ZIP della cartella di release e lo invia al sistema di pubblicazione che pensa a scompattarlo e sovrascrivere i file nelle cartelle di destinazione.

Il terzo profilo è il più interessante.
Web Deploy consente di effettuare una pubblicazione selettiva solamente dei file modificati.
Questa pubblicazione è molto più rapida e funziona in modo simile a quella tipica dei sistemi di Web Deploy in ambiente Windows.

Il problema e la soluzione

Purtroppo questa pubblicazione non funziona out-of-the-box come ci potremo aspettare.

Esiste un problema di configurazione che impedisce al sistema di pubblicazione di Azure di funzionare correttamente in ambiente Linux.

Le modifiche da apportare per far funzionare la pubblicazione Web Deploy sono due.

La prima è di modificare il file “[nome app] Web Deploy.pubxml” che è stato scaricato.
Per modificarlo è sufficiente aprilo da Visual Studio o da un altro editor.
Essendo un file XML è modificabile liberamente.
All’interno del file è necessario aggiungere il tag: <IsLinux>True</IsLinux>

Otterremo un file simile al seguente:

A questo punto dobbiamo entrare in Azure è aggiungere una variabile alla configurazione dell’applicazione:

La variabile da aggiungere si deve chiamare WEBSITE_WEBDEPLOY_USE_SCM e deve essere impostata a false:

A questo punto la pubblicazione funzionerà correttamente.

Related Posts

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.