Condividi tramite


Configurare la distribuzione continua nel servizio app di Azure

Nota

A partire dal 1° giugno 2024, le app del servizio app appena create possono generare un nome host predefinito univoco che utilizza la convenzione di denominazione <app-name>-<random-hash>.<region>.azurewebsites.net. Ad esempio: myapp-ds27dh7271aah175.westus-01.azurewebsites.net. I nomi delle app esistenti rimangono invariati.

Per altre informazioni, vedere il post di blog sulla creazione un’app Web con un nome host predefinito univoco.

È possibile configurare la distribuzione continua da GitHub, Bitbucket e repository di Azure usando servizio app di Azure, che esegue il pull degli aggiornamenti più recenti. Questa guida fornisce tutte le informazioni necessarie per iniziare.

Preparare il repository

Per ottenere compilazioni automatizzate dal server di compilazione di App Service, assicurarsi che la radice del repository contenga i file corretti nel tuo progetto.

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

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

Suggerimento

Visual Studio può creare automaticamente un repository. Con questo metodo, il progetto è 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 menu a sinistra selezionare Centro distribuzione. Selezionare quindi Impostazioni.

  3. Nella casella Origine selezionare una delle opzioni di distribuzione continua (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 dal repository di un altro utente, selezionare Cambia account.

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

    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 di Azure dispone delle autorizzazioni necessarie per l'opzione Identità assegnata dall'utente, Azure crea automaticamente un'Identità gestita assegnata dall'utente. Se non si hanno le autorizzazioni necessarie, rivolgersi all'amministratore di Azure per creare un'identità con il ruolo richiesto nell'app e quindi selezionarla 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 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. Nel portale di Azure, passare alla pagina di gestione dell'app del servizio app.

  2. Nel menu a sinistra selezionare Centro 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. Il file del flusso di lavoro di GitHub Actions viene mantenuto nel repository per impostazione predefinita, 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 di distribuzione, potrebbero essere visualizzate alcune opzioni per il provider di build. I provider di compilazione consentono di creare una soluzione di integrazione continua e recapito continuo (CI/CD) con il servizio app di Azure automatizzando compilazione, test e distribuzione.

Non sono disponibili solo le opzioni del provider di compilazione presenti nel Centro distribuzione. Grazie al servizio app è possibile configurarle rapidamente e usufruire di un'esperienza di registrazione della distribuzione integrata.

Il provider di compilazione GitHub Actions è disponibile solo per la distribuzione di GitHub. Quando viene configurato dal centro di distribuzione dell'app, il provider di compilazione configura CI/CD depositando un file del flusso di lavoro GitHub Actions nel repository GitHub che gestisce le attività di compilazione e distribuzione nel servizio app.

Per l'autenticazione di base, aggiunge il profilo di pubblicazione per la tua 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 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 nei modi seguenti:

  • È possibile personalizzare il file del flusso di lavoro dopo che viene 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 aggiungerlo manualmente al repository. Questo metodo non offre l'integrazione dei log con il portale di Azure.
  • Anziché utilizzare l'autenticazione di base o un'identità assegnata dall'utente, è anche possibile eseguire la distribuzione utilizzando un'entità servizio in Microsoft Entra ID. Questo metodo non può essere configurato nel portale.

Cosa accade all'app durante la distribuzione?

Quando usi metodi di distribuzione ufficialmente supportati, le modifiche vengono apportate ai file nella cartella dell'app /home/site/wwwroot . Questi file vengono usati per eseguire l'app. 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.

Esistono alcuni modi per evitare questi problemi:

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 Distribuire 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 GitHub. Il servizio app abilita l'autenticazione consigliata di Microsoft OpenID Connect 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 per eseguire l'autenticazione con l'app Azure/login 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 "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 (limitate alla tua app) sono:

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

Per impostazione predefinita, i ruoli Amministratore accesso utenti e Proprietario dispongono già di queste autorizzazioni, ma il ruolo Collaboratore non lo è. 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 siti Web. Nel Centro distribuzione è quindi possibile selezionare l'identità nell'elenco a discesa Identità GitHub>.

Per altre informazioni sull'uso di passaggi alternativi, vedere Distribuire nel servizio app con GitHub Actions.

Perché viene visualizzato l'errore "Questa identità non dispone delle autorizzazioni di scrittura per questa app. Seleziona un'identità diversa o collabora con l'amministratore per concedere il ruolo di Collaboratore del sito web alla tua identità nell'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 App Service. L'identità deve avere uno dei ruoli seguenti nell'app: Proprietario, Collaboratore o Collaboratore siti Web. Il ruolo con privilegi minimi necessari per l'identità è Collaboratore siti Web.