Condividi tramite


Distribuzione continua nel servizio app di Azure

Nota

A partire dal 1° giugno 2024, tutte le app del servizio app appena create avranno la possibilità di generare un nome host predefinito univoco usando la convenzione di denominazione <app-name>-<random-hash>.<region>.azurewebsites.net. I nomi delle app esistenti rimarranno invariati.

Esempio: myapp-ds27dh7271aah175.westus-01.azurewebsites.net

Per altri dettagli, fare riferimento a Nome host predefinito univoco per la risorsa del servizio app.

Servizio app di Azure consente la distribuzione continua di repository GitHub, Bitbuckete Azure Repos eseguendo il pull degli aggiornamenti più recenti.

Preparare il repository

Per ottenere build automatizzate dal server di Servizio app di Azure, assicurarsi che la radice del repository contenga i file corretti nel progetto.

esecuzione File della directory radice
ASP.NET (solo Windows) *.sln, *.csproj o default.aspx
ASP.NET Core *.sln oppure *.csproj
PHP index.php
Ruby (solo Linux) Gemfile
Node.js server.js, app.jso package.json con uno script di avvio
Python *.py, requirements.txt o runtime.txt
HTML default.htm, default.html, default.asp, index.htm, index.html o iisstart.htm
Processi Web <job_name>/run.<extension> in App_Data/jobs/continuous per WebJobs continui o App_Data/jobs/triggered per i WebJobs attivati. Per altre informazioni, vedere la documentazione dei processi Web Kudu.
Funzioni Vedere Distribuzione continua per Funzioni di Azure.

Per personalizzare la distribuzione, includere un file .deployment nella radice del repository. Per altre informazioni, vedere Personalizzare le distribuzioni e Script di distribuzione personalizzato.

Nota

Se si usa Visual Studio, lasciare che Visual Studio crei automaticamente un repository. Il progetto sarà immediatamente pronto per la distribuzione tramite Git.

Configurare l'origine della distribuzione

  1. Nel portale di Azure, passare alla pagina di gestione dell'app del servizio app.

  2. Nel riquadro sinistro selezionare Centro di distribuzione. Selezionare quindi Impostazioni.

  3. Nella casella Origine, selezionare una delle opzioni CI/CD:

    Screenshot che mostra come scegliere l'origine della distribuzione.

Selezionare la scheda corrispondente al provider di compilazione per continuare.

  1. GitHub Actions è il provider di compilazione predefinito. Per modificare il provider, selezionare Modifica provider>Servizio di compilazione del servizio app>OK.

  2. Se si esegue la distribuzione da GitHub per la prima volta, selezionare Autorizza e seguire le istruzioni di autorizzazione. Per eseguire la distribuzione da un repository utente diverso, selezionare Cambia account.

  3. Dopo aver autorizzato l'account Azure con GitHub, selezionare la Organizzazione, i Repositorye il Ramo desiderati.

    Se non si riesce a trovare un'organizzazione o un repository, potrebbe essere necessario abilitare più autorizzazioni in GitHub. Per altre informazioni, vedere Gestione dell'accesso ai repository dell'organizzazione.

  4. In Tipo di autenticazione, selezionare Identità assegnata dall'utente per una maggiore sicurezza. Per altre informazioni, vedere domande frequenti.

    Nota

    Se l'account di Azure dispone delle autorizzazioni necessarie per l'opzione Identità assegnata dall'utente, Azure crea automaticamente un'Identità gestita assegnata dall'utente. In caso contrario, collaborare con l'amministratore di Azure per creare un'identità con il ruolo richiesto nell'app, quindi selezionarla qui nell'elenco a discesa.

  5. (Facoltativo) Per visualizzare il file prima di salvare le modifiche, selezionare File di anteprima. Il servizio app seleziona un modello di flusso di lavoro basato sull'impostazione dello stack di linguaggio dell'app ed esegue il commit nel repository GitHub selezionato.

  6. Seleziona Salva.

    I nuovi commit nel repository e nel ramo selezionati vengono distribuiti in modo continuo nell'app del servizio app. È possibile tenere traccia dei commit e delle distribuzioni nella scheda Log.

Disabilitare la distribuzione continua

  1. Nel portale di Azure, passare alla pagina di gestione dell'app del servizio app.

  2. Nel riquadro sinistro selezionare Centro di distribuzione. Selezionare quindi Impostazioni>Disconnetti:

    Screenshot che mostra come disconnettere la sincronizzazione delle cartelle cloud con l'app del servizio app nel portale di Azure.

  3. Per impostazione predefinita, il file del flusso di lavoro di GitHub Actions viene mantenuto nel repository, ma continua a attivare la distribuzione nell'app. Per eliminare il file dal repository, selezionare Elimina il file del flusso di lavoro.

  4. Seleziona OK.

Quali sono i provider di compilazione?

A seconda dell'origine di distribuzione nel Centro distribuzione, potrebbero essere visualizzate alcune opzioni da selezionare per i provider di compilazione. I provider di compilazione consentono di creare una soluzione CI/CD con il servizio app di Azure automatizzando la compilazione, il test e la distribuzione.

Non ci si limita alle opzioni del provider di compilazione presenti nel Centro distribuzione, ma il servizio app consente di configurarle rapidamente e offre un'esperienza di registrazione della distribuzione integrata.

Il provider di compilazione GitHub Actions è disponibile solo per la distribuzione di GitHub. Dopo aver effettuato la configurazione dal Centro distribuzione dell'app, completare queste azioni per configurare CI/CD:

  • Deposita un file del flusso di lavoro di GitHub Actions nel repository GitHub per gestire le attività di compilazione e distribuzione nel servizio app.
  • Per l'autenticazione di base, aggiunge il profilo di pubblicazione per l'app come segreto di GitHub. Il file del flusso di lavoro usa questo segreto per l'autenticazione con il servizio app.
  • Per l'identità assegnata dall'utente, vedere Come funziona l'opzione identità assegnata dall'utente per GitHub Actions?
  • Acquisisce le informazioni dai log di esecuzione del flusso di lavoro e le visualizza nella scheda Log nel Centro distribuzione.

È possibile personalizzare il provider di compilazione GitHub Actions in questi modi:

  • Personalizzare il file del flusso di lavoro dopo che è stato generato nel repository GitHub. Per altre informazioni, vedi Sintassi del flusso di lavoro per GitHub Actions. Assicurarsi che il flusso di lavoro venga distribuito nel servizio app con l'azione azure/webapps-deploy.
  • Se il ramo selezionato è protetto, è comunque possibile visualizzare in anteprima il file del flusso di lavoro senza salvare la configurazione e quindi aggiungerlo manualmente nel repository. Questo metodo non offre l'integrazione dei log con il portale di Azure.
  • Anziché usare l'autenticazione di base o un'identità assegnata dall'utente, è anche possibile eseguire la distribuzione usando un'entità servizio in Microsoft Entra ID. Non è possibile configurare questa impostazione nel portale.

Cosa accade all'app durante la distribuzione?

Tutti i metodi di distribuzione supportati ufficialmente apportano modifiche ai file nella cartella /home/site/wwwroot dell'app. Questi file vengono usati per eseguire l'app. Pertanto, la distribuzione può non riuscire a causa di file bloccati. L'app potrebbe anche comportarsi in modo imprevedibile durante la distribuzione perché i file non vengono tutti aggiornati contemporaneamente. Questo comportamento è indesiderato per un'app rivolta al cliente. Per evitare questi problemi sono disponibili varie alternative:

Domande frequenti

Il provider di compilazione GitHub Actions può funzionare con l'autenticazione di base se l'autenticazione di base è disabilitata?

No. Provare a usare GitHub Actions con l'opzione identità assegnata dall'utente.

Per altre informazioni, vedere Distribuzione senza autenticazione di base.

Come funziona l'opzione di identità assegnata dall'utente per GitHub Actions?

Quando si seleziona l''identità assegnata dall'utente nell'origine GitHub Actions, il servizio app configura tutte le risorse necessarie in Azure e in GitHub per abilitare l'autenticazione OpenID Connect consigliata con GitHub Actions.

In particolare, il servizio app esegue le operazioni seguenti:

  • Crea una credenziale federata tra un'identità gestita assegnata dall'utente in Azure e il repository e il ramo selezionati in GitHub.
  • Crea i segreti AZURE_CLIENT_ID, AZURE_TENANT_IDe AZURE_SUBSCRIPTION_ID dalle credenziali federate nel repository GitHub selezionato.
  • Assegna l'identità all'app.

In un flusso di lavoro di GitHub Actions nel repository GitHub è quindi possibile usare l'azione Azure/accesso per eseguire l'autenticazione con l'app usando OpenID Connect. Per esempi, vedere Aggiungere il file del flusso di lavoro al repository GitHub.

Se l'account Azure dispone delle autorizzazioni necessarie, il servizio app crea un'identità gestita assegnata dall'utente e la configura automaticamente. Questa identità non viene visualizzata nella pagina identità dell'app. Se l'account Azure non dispone delle autorizzazioni necessarie, è necessario selezionare un'identità esistente con il ruolo necessario.

Perché viene visualizzato l'errore "Le autorizzazioni disponibili non sono sufficienti per questa app per assegnare l'accesso basato sui ruoli a un'identità gestita e configurare le credenziali federate"?

Il messaggio indica che l'account Azure non dispone delle autorizzazioni necessarie per creare un'identità gestita assegnata dall'utente per GitHub Actions. Le autorizzazioni necessarie (con ambito per l'app) sono:

  • Microsoft.Authorization/roleAssignments/write
  • Microsoft.ManagedIdentity/userAssignedIdentities/write

Per impostazione predefinita, il ruolo Amministratore Accesso utenti e Proprietario dispongono già di queste autorizzazioni, ma non il ruolo Collaboratore. Se non si dispone delle autorizzazioni necessarie, collaborare con l'amministratore di Azure per creare un'identità gestita assegnata dall'utente con il ruolo Collaboratore sito Web. Nel Centro distribuzione è quindi possibile selezionare l'identità nell'elenco a discesa GitHub>Identità.

Per altre informazioni sui passaggi alternativi, vedere Eseguire la distribuzione nel servizio app usando GitHub Actions.

Perché viene visualizzato l'errore, "Questa identità non dispone delle autorizzazioni di scrittura su questa app. Selezionare un'identità diversa o collaborare con l'amministratore per concedere il ruolo di Collaboratore siti Web all'identità su questa app"?

Il messaggio indica che l'identità gestita assegnata dall'utente selezionata non ha il ruolo necessario per abilitare OpenID Connect tra il repository GitHub e l'app del servizio app. L'identità deve avere uno dei ruoli seguenti nell'app: Proprietario, Collaboratore, Collaboratore siti Web. Il ruolo con privilegi minimi necessari per l'identità è Collaboratore siti Web.

Altre risorse