Pianificare l'app Web statica di Azure

Completato

L'obiettivo finale è ospitare l'app in Azure. App Web statiche di Azure si occupa automaticamente del provisioning di tutte le risorse di Azure necessarie.

Tuttavia, prima che l'app possa essere ospitata, è necessario qualcosa per la compilazione dell'app man mano che si apportano modifiche. Queste modifiche possono essere apportate tramite commit o richieste pull al repository. Una caratteristica principale di App Web statiche di Azure consiste nel configurare un flusso di lavoro di GitHub Actions per compilare e pubblicare l'applicazione.

Quando si crea la risorsa di App Web statiche di Azure, viene creato il flusso di lavoro di GitHub Actions. Il flusso di lavoro viene attivato immediatamente e si occupa della compilazione e della pubblicazione dell'app. Il flusso di lavoro viene attivato anche ogni volta che si apporta una modifica al ramo monitorato nel repository.

App Web statiche di Azure

La distribuzione di un'app Web include due aspetti automatizzati. Il primo è il provisioning delle risorse di Azure sottostanti che costituiscono l'app. Il secondo è un flusso di lavoro di GitHub Actions che compila e pubblica l'applicazione.

Pubblicando l'app nel Web con App Web statiche di Azure, si ottiene hosting rapido dell'app Web e API scalabili. Si ottiene anche un flusso di lavoro di compilazione e distribuzione unificato, fornito da GitHub Actions.

Connettere l'istanza di App Web statiche a GitHub

App Web statiche di Azure è progettato per ospitare applicazioni host quando il codice sorgente si trova in GitHub. Quando si crea un'istanza di App Web statiche, si accede a GitHub e si specifica il repository contenente il codice dell'app.

È anche necessario specificare tre percorsi di cartella nel repository, in modo che l'app possa essere automaticamente compilata e distribuita:

Titolo Esempio di percorso Descrizione Richiesto
App location (Percorso app) Client Percorso del codice sorgente per l'app Web
Percorso di output wwwroot Percorso degli artefatti della compilazione dell'app No
Posizione dell'API Api Percorso del codice sorgente per l'API No

Il percorso dell'output è un percorso relativo rispetto alla directory di pubblicazione dell'applicazione. Ad esempio, si supponga di avere un'app in Client che restituisce i propri asset di compilazione in una cartella bin/<build profile>/<framework>/publish/wwwroot. In questo caso, è sufficiente specificare wwwroot per questo percorso, perché il sistema di pubblicazione si occupa del resto del prefisso.

Dal codice sorgente agli asset statici con GitHub Actions

Il repository GitHub contiene il codice sorgente, non gli asset statici, e di conseguenza deve essere creato prima che possa essere pubblicato.

Quando si crea un'istanza di App Web statiche, Azure crea un flusso di lavoro di GitHub Actions nel repository. Ogni volta che si esegue il push delle modifiche o si crea una richiesta pull sul ramo rilasciato da, il flusso di lavoro compila l'app. Questo processo trasforma il codice sorgente in asset statici utilizzati da Azure. Al termine della compilazione, l'azione distribuisce gli asset.

Il flusso di lavoro di GitHub Actions viene aggiunto nel repository nella cartella .github/workflows. È possibile esaminare o modificare questo file nel modo necessario. Le impostazioni immesse quando si crea la risorsa vengono archiviate nel file di GitHub Actions.

API integrata con Funzioni di Azure

Se l'app richiede un'API, è possibile implementarla come progetto Funzioni di Azure nel repository e l'istanza di App Web statiche distribuisce e lo ospita automaticamente. Il flusso di lavoro di GitHub Actions che compila e distribuisce l'app individua l'API all'interno del repository usando il nome della cartella specificata nel percorso dell'API.

Se non è disponibile un'API, Nessun problema. Se App Web statiche di Azure non riesce a trovare un'API nella cartella indicata, non pubblica un'API, ma pubblica comunque l'app.

Passaggi successivi

Che cosa è necessario per poter pubblicare l'app Web in App Web statiche di Azure? Tutto quello che serve è l'app nel repository GitHub.