Con la piattaforma cloud di Microsoft sono presenti molteplici modi per ospitare il proprio applicativo, soprattutto se statico, cioè formato da soli file HTML, immagini e fogli di stili. Tra le possibili alternative c'è quella di poter usare un service plan Linux, piuttosto economico e allo stesso tempo performante. Su di esso possiamo eseguire vari runtime o container, ma sicuramente la forma più semplice consiste nello sfruttare NodeJS, già disponibile sul servizio.
Quando creiamo un'istanza, infatti, possiamo selezionare il tipo di plan e anche il tipo di runtime.
Creato il servizio, però, il sito risponde con una pagina statica che troviamo nella cartella /home/site/wwwroot, ma non è sufficiente cambiarne il contenuto. Come documentato al seguente indirizzo https://docs.microsoft.com/en-us/azure/app-service/configure-language-nodejs?pivots=platform-linux#configure-nodejs-server il sistema cerca alcuni file specifici per avviare tramite NPM il server node.js. In alternativa troviamo già a disposizione PM2, un pacchetto che già dispone di un web server e fornisce le funzionalità necessarie per l'hosting. Tutto quello che dobbiamo fare è andare sul portale ed entrare nella configurazione dell'app service.
Nella sezione general settings, oltre al runtime, possiamo specificare il comando di avvio, nello specifico indicare a PM2 di iniziare l'hosting della cartella prima menzionata.
pm2 serve /home/site/wwwroot --no-daemon
L'opzione --no-daemon specifica di avviare il processo in modalità console affinché sia visibile il log e il processo venga controllato da app service stesso. Così facendo i nostri contenuti statici verranno serviti.
Qualora il nostro applicativo fosse una SPA, possiamo aggiungere l'opzione --spa al fine di restituire il file index.html indipendentemente dall'indirizzo specificato (ad eccezione dei file fisici presenti).
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Usare una container image come runner di GitHub Actions
Inizializzare i container in Azure Container Apps
Recuperare l'ultima versione di una release di GitHub
Migliora la resilienza delle applicazioni con .NET e Azure Container Apps
Ottimizzare le performance delle collection con le classi FrozenSet e FrozenDictionary
Creazione di plugin per Tailwind CSS: espandere le funzionalità del framework dinamicamente
Potenziare Azure AI Search con la ricerca vettoriale
Usare il colore CSS per migliorare lo stile della pagina
Evitare la script injection nelle GitHub Actions
Creare gruppi di client per Event Grid MQTT
Criptare la comunicazione con mTLS in Azure Container Apps