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
C# 12: Cosa c'è di nuovo e interessante
Creare gruppi di client per Event Grid MQTT
Autenticarsi in modo sicuro su Azure tramite GitHub Actions
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Triggerare una pipeline su un altro repository di Azure DevOps
Utilizzare il trigger SQL con le Azure Function
Utilizzare la funzione EF.Parameter per forzare la parametrizzazione di una costante con Entity Framework
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Recuperare App Service cancellati su Azure
Aggiungere interattività lato server in Blazor 8