Distribuzione continua nel servizio app di Azure

app Azure Servizio abilita la distribuzione continua da Repository GitHub, Bitbucket e Azure Repos eseguendo il pull degli aggiornamenti più recenti.

Preparare il repository

Per ottenere compilazioni automatizzate dal server di compilazione del servizio app 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 processi Web continui o App_Data/jobs/triggered per processi Web 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, consentire a Visual Studio di creare automaticamente un repository. Il progetto sarà immediatamente pronto per la distribuzione tramite Git.

Configurare l'origine della distribuzione

  1. Nella portale di Azure passare alla pagina di gestione per l'app servizio app.

  2. Nel riquadro sinistro selezionare Centro 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 Cambia provider> servizio app Compila servizio>OK.

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

  3. Dopo aver autorizzato l'account Azure con GitHub, selezionare l'organizzazione, il repository e il ramo desiderati.

    Se non è possibile trovare un'organizzazione o un repository, potrebbe essere necessario abilitare altre 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 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 Anteprima file. servizio app seleziona un modello di flusso di lavoro in base all'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. Nella portale di Azure passare alla pagina di gestione per l'app servizio app.

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

    Screenshot che mostra come disconnettere la sincronizzazione della cartella cloud con l'app 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 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 app Azure Servizio automatizzando compilazione, test e distribuzione.

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

Il provider di compilazione GitHub Actions è disponibile solo per la distribuzione di GitHub. Quando configurato dal Centro distribuzione dell'app, completa 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 in servizio app.
  • Per l'autenticazione di base, aggiunge il profilo di pubblicazione per l'app come segreto GitHub. Il file del flusso di lavoro usa questo segreto per l'autenticazione con servizio app.
  • Per l'identità assegnata dall'utente, vedere Che cosa fa l'opzione di identità assegnata dall'utente per GitHub Actions?
  • Acquisisce informazioni dai log di esecuzione del flusso di lavoro e le visualizza nella scheda Log del 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, vedere Sintassi del flusso di lavoro per GitHub Actions. Assicurarsi che il flusso di lavoro venga distribuito in 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 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 funziona con l'autenticazione di base se l'autenticazione di base è disabilitata?

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

Per altre informazioni, vedere Distribuzione senza autenticazione di base.

Qual è l'opzione di identità assegnata dall'utente per GitHub Actions?

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

In particolare, 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/login per eseguire l'autenticazione con l'app usando OpenID Connessione. Per esempi, vedere Aggiungere il file del flusso di lavoro al repository GitHub.

Se l'account Azure dispone delle autorizzazioni necessarie, 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 richiesto.

Perché viene visualizzato l'errore "Non si dispone di autorizzazioni 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 Accesso utenti Amministrazione istrator e il ruolo Proprietario dispongono già di queste autorizzazioni, ma il ruolo Collaboratore non lo è. Se non si dispone delle autorizzazioni necessarie, rivolgersi all'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 Identità GitHub>.

Per altre informazioni sui passaggi alternativi, vedere Distribuire in servizio app usando GitHub Actions.

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

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

Altre risorse