Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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.htm index.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
Nel portale di Azure, passare alla pagina di gestione dell'app del servizio app.
Nel menu a sinistra selezionare Centro distribuzione. Selezionare quindi Impostazioni.
Nella casella Origine selezionare una delle opzioni di distribuzione continua (CI/CD):
Selezionare la scheda corrispondente al provider di compilazione per continuare.
GitHub Actions è il provider di compilazione predefinito. Per modificare il provider, selezionare Modifica provider>Servizio di compilazione del servizio app>OK.
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.
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.
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.
(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.
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
Nel portale di Azure, passare alla pagina di gestione dell'app del servizio app.
Nel menu a sinistra selezionare Centro distribuzione. Selezionare quindi Impostazioni>Disconnetti.
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.
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:
- Eseguire l'app direttamente dal pacchetto ZIP, senza decomprimerla.
- Arrestare l'app o abilitare la modalità offline durante la distribuzione. Per altre informazioni, vedere Gestire i file bloccati durante la distribuzione.
- Eseguire la distribuzione in uno slot di staging con lo scambio automatico attivato.
Domande frequenti
- Il provider di compilazione GitHub Actions funziona con l'autenticazione di base se l'autenticazione di base è disabilitata?
- Come funziona l'opzione di identità assegnata dall'utente per 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 di Collaboratore siti Web all'identità su questa app"?
- 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 assegnare il ruolo di Collaboratore del sito web alla tua identità in questa app.
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_ID
eAZURE_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.