Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du kan konfigurera kontinuerlig distribution (CD) till Azure App Service genom att hämta uppdateringar från GitHub, Bitbucket, Azure Repos eller andra lagringsplatser.
Förutsättningar
Skrivbehörigheter för en Azure App Service-app på en källkontrolllagringsplats.
Förbereda lagringsplatsen
Om du vill hämta automatiserade versioner från App Service-byggservern kontrollerar du att lagringsplatsens rot har rätt filer i projektet.
| Körtid | Rotkatalogens filer | 
|---|---|
| ASP.NET (Windows endast) | *.sln,*.csproj, ellerdefault.aspx. | 
| ASP.NET Kärna | *.slneller*.csproj. | 
| PHP | index.php. | 
| Ruby (Linux endast) | Gemfile. | 
| Node.js | server.js,app.jsellerpackage.jsonmed ett startskript. | 
| python | *.py,requirements.txt, ellerruntime.txt. | 
| HTML | default.htm,default.html,default.asp,index.htm,index.htmlelleriisstart.htm. | 
| Webbjobb | <job_name>/run.<extension>underApp_Data/jobs/continuousför kontinuerliga webbjobb ellerApp_Data/jobs/triggeredför utlösta webbjobb. Mer information finns i Dokumentation om Kudu WebJobs. | 
| Funktioner | Se Kontinuerlig distribution för Azure Functions. | 
Om du vill anpassa distributionen, inkludera en .deployment-fil i rotkatalogen på lagringsplatsen. Mer information finns i Anpassa distributioner och Anpassat distributionsskript.
Tips/Råd
Visual Studio kan skapa en lagringsplats åt dig. Med den här metoden är projektet omedelbart redo för distribution via Git.
Aktivera kontinuerlig distribution
- I Azure-portalen går du till sidan för din App Service-app och väljer Distributionscenter på den vänstra navigeringsmenyn. 
- På fliken Inställningar under Källa väljer du källkontrolllagringsplatsens typ.   
- Följ anvisningarna för källtypen för att konfigurera distributionen.   
Alla källor i listan kan skapas med App Service Build Service. Vissa källor kan också byggas med GitHub Actions eller Azure Pipelines. Mer information finns i Skapa leverantörer.
GitHub Actions är standardleverantör för GitHub-bygg. Om du vill ändra providern väljer du Ändra leverantör, väljer App Service Build Service eller Azure Pipelines och sedan OK.
Om det behövs väljer du Auktorisera och följer auktoriseringsanvisningarna för GitHub. Om du vill distribuera från en annan användares lagringsplats väljer du Ändra konto.
- Välj lämplig GitHub-organisation, lagringsplats och gren. - Om du inte hittar en organisation eller lagringsplats kan du behöva aktivera fler behörigheter på GitHub. Mer information finns i Hantera åtkomst till organisationens lagringsplatser. 
- Under Autentiseringstyp väljer du Användartilldelad identitet för bättre säkerhet. - Om ditt Azure-konto har de behörigheter som krävs skapar App Service en användartilldelad hanterad identitet åt dig, eller så kan du välja en befintlig hanterad identitet. Om du inte har de behörigheter som krävs kan du samarbeta med Azure-administratören för att skapa en identitet med den roll som krävs för din app och sedan välja den i listrutan. 
- App Service väljer en arbetsflödesmall baserat på appens inställning på språkstacken och för in den i din valda GitHub-lagringsplats. Du kan också välja Förhandsgranska fil för att se arbetsflödesfilen innan du sparar ändringarna. 
- Välj Spara. 
Nya incheckningar i det valda repositoryt och grenen distribueras nu kontinuerligt till din App Service-app. Du kan spåra incheckningar och distributioner på fliken Loggar .
Inaktivera kontinuerlig distribution
Så här inaktiverar du kontinuerlig distribution för en ansluten källa:
- I Azure-portalen går du till sidan för din App Service-app och väljer Distributionscenter på den vänstra navigeringsmenyn. 
- På fliken Inställningar väljer du Koppla från.   
- Välj OK. 
För GitHub finns arbetsflödesfilen kvar på lagringsplatsen som standard, men du ser inte längre den integrerade förloppet på fliken Loggar i Distributionscenter.
Vilka är byggleverantörerna?
Byggleverantörer hjälper dig att skapa en ci/CD-lösning (kontinuerlig integrering och kontinuerlig leverans) med Azure App Service genom att automatisera bygge, testning och distribution. Vissa distributionskällor erbjuder flera alternativ för byggprovidern. Alla källor i listan kan skapas med App Service Build Service.
Du är inte begränsad till de angivna alternativen för byggprovider, men App Service hjälper dig att snabbt konfigurera de listade alternativen och börja få integrerad distributionsloggning.
GitHub Actions (verktyg för arbetsflöden)
GitHub Actions-byggprovidern är endast tillgänglig för GitHub-källan och är standard för GitHub-distributioner. Byggleverantören konfigurerar CI/CD genom att sätta in en GitHub Actions-arbetsflödesfil på din GitHub-lagringsplats som hanterar App Service-bygg- och distributionsuppgifter.
För grundläggande autentisering lägger GitHub Actions-byggleverantören till publiceringsprofilen för din app som en GitHub-hemlighet. Arbetsflödesfilen använder den här hemligheten för att autentisera med App Service.
För användartilldelad identitet aktiverar App Service den rekommenderade Microsoft OpenID Connect-autentiseringen och konfigurerar nödvändiga resurser i Azure och GitHub. Mer information finns i Vad gör det användartilldelade identitetsalternativet för GitHub Actions?
GitHub Actions-byggprovidern samlar in information från arbetsflödets körningsloggar och visar den på fliken Loggar i appens distributionscenter.
Du kan anpassa GitHub Actions-byggprovidern på flera sätt:
- Anpassa arbetsflödesfilen när den har genererats på din GitHub-lagringsplats. Mer information finns i Arbetsflödessyntax för GitHub Actions. Distribuera det anpassade arbetsflödet till App Service med åtgärden azure/webapps-deploy.
- Om den valda grenen är skyddad förhandsgranskar du arbetsflödesfilen utan att spara konfigurationen. Anpassa filen och lägg sedan till den manuellt på lagringsplatsen. Den här metoden ger dig inte loggintegrering med Azure Portal.
- Distribuera med hjälp av en Microsoft Entra ID serviceprincipal i stället för att använda grundläggande autentisering eller en användartilldelad identitet. Du kan inte konfigurera den här metoden i portalen.
App Service-byggtjänst
App Service-byggtjänsten är den interna App Service-distributions- och byggmotorn. När du väljer det här alternativet lägger App Service till en webhook på den lagringsplats som du har auktoriserat. Varje kodändring till förrådet utlöser webhooken och App Service hämtar ändringarna och utför nödvändiga distributionsuppgifter. Mer information finns i Distribuera från GitHub (Kudu).
App Service-byggtjänsten kräver grundläggande autentisering med Source Control Manager (SCM) för att webhooken ska fungera. Grundläggande autentisering är mindre säker än andra autentiseringsmetoder. Mer information finns i:
- Kudu-projektet
- Undersöka vanliga problem med kontinuerlig distribution
- Distribuera utan grundläggande autentisering
Azure-pipelines
Azure Pipelines är byggkomponenten i Azure DevOps. Du kan konfigurera en pipeline för att skapa, testa och distribuera din app till App Service från valfri källlagringsplats som stöds.
Om du vill använda Azure Pipelines som byggprovider väljer du alternativet Azure Pipelines i App Service Deployment Center och går sedan direkt till Azure DevOps för att konfigurera pipelinen. Mer information finns i Distribuera till App Service med hjälp av Azure Pipelines.
Vanliga frågor och svar
- Hur fungerar GitHub Actions-byggprovidern om grundläggande autentisering är inaktiverad?
- Vad händer med min app under distributionen som kan orsaka fel eller oförutsägbart beteende?
- Vad gör det användartilldelade identitetsalternativet för GitHub Actions?
- Varför visas felet "Du har inte tillräcklig behörighet för den här appen för att tilldela rollbaserad åtkomst till en hanterad identitet och konfigurera federerade autentiseringsuppgifter"?
- Varför visas felet "Den här identiteten har inte skrivbehörighet för den här appen. Välj en annan identitet eller samarbeta med administratören för att bevilja rollen Webbplatsdeltagare till din identitet i den här appen"?
Hur fungerar GitHub Actions-byggprovidern om grundläggande autentisering är inaktiverad?
GitHub Actions-byggprovidern fungerar inte med grundläggande autentisering om grundläggande autentisering är inaktiverad. Prova att använda GitHub Actions med det användartilldelade identitetsalternativet i stället. Mer information finns i Distribuera utan grundläggande autentisering.
Vad händer med min app under distributionen som kan orsaka fel eller oförutsägbart beteende?
Distributionsmetoder som stöds officiellt gör ändringar i filer i mappen /home/site/wwwroot som används för att köra appen. Distributionen kan misslyckas på grund av låsta filer. Appen kan också bete sig oförutsägbart under distributionen om alla filer inte uppdateras samtidigt, vilket inte är önskvärt för en kundinriktad app.
Det finns några sätt att undvika dessa problem.
- Kör appen direkt från ZIP-paketet utan att packa upp den.
- Stoppa appen eller aktivera offlineläge under distributionen. Mer information finns i Hantera låsta filer under distributionen.
- Distribuera till en mellanlagringsplats med automatisk växling aktiverat.
Vad gör det användartilldelade identitetsalternativet för GitHub Actions?
När du väljer Användartilldelad identitet för GitHub-källa konfigurerar App Service alla nödvändiga resurser i Azure och GitHub. App Service aktiverar den rekommenderade Microsoft OpenID Connect-autentiseringen med GitHub Actions.
Mer specifikt utför App Service följande åtgärder:
- Skapar en federerad autentiseringsuppgift mellan en användartilldelad hanterad identitet i Azure och den valda lagringsplatsen och grenen i GitHub.
- Skapar hemligheterna AZURE_CLIENT_ID,AZURE_TENANT_IDochAZURE_SUBSCRIPTION_IDfrån de federerade autentiseringsuppgifterna i din valda GitHub-lagringsplats.
- Tilldelar identiteten till din app.
Du kan sedan använda Azure/login-åtgärden i ett GitHub Actions-arbetsflöde i ditt GitHub-förråd för att autentisera med din app med hjälp av OpenID Connect. Exempel finns i Lägga till arbetsflödesfilen till din GitHub-lagringsplats.
Om ditt Azure-konto har de behörigheter som krävs skapar App Service en användartilldelad hanterad identitet och konfigurerar den åt dig. Den här identiteten visas inte på appens identitetssida . Om ditt Azure-konto inte har de behörigheter som krävs måste du välja en befintlig identitet med den nödvändiga rollen.
Varför visas felet "Du har inte tillräcklig behörighet för den här appen för att tilldela rollbaserad åtkomst till en hanterad identitet och konfigurera federerade autentiseringsuppgifter"?
Meddelandet anger att ditt Azure-konto inte har de behörigheter som krävs för att skapa en användartilldelad hanterad identitet för GitHub Actions. Du behöver följande behörigheter, begränsade till din app:
- Microsoft.Authorization/roleAssignments/write
- Microsoft.ManagedIdentity/userAssignedIdentities/write
Som standard har rollerna Administratör och ägare förAzure-användaråtkomst dessa behörigheter, men rollen Deltagare har inte det. Om du inte har de behörigheter som krävs kan du samarbeta med Azure-administratören för att skapa en användartilldelad hanterad identitet som har rollen Websites-deltagare . Du kan sedan välja den identiteten i listrutan Identitet för GitHub-källa i App Service Deployment Center.
Mer information om hur du använder alternativa steg finns i Distribuera till App Service med GitHub Actions.
Varför visas felet "Den här identiteten har inte skrivbehörighet för den här appen. Välj en annan identitet eller samarbeta med administratören för att bevilja rollen Webbplatsdeltagare till din identitet i den här appen"?
Meddelandet anger att den valda användartilldelade hanterade identiteten inte har den roll som krävs för att [aktivera OpenID Connect]((#what-does-the-user-assigned-identity-option-do-for-github-actions) mellan GitHub-lagringsplatsen och App Service-appen. Identiteten måste ha rollen Ägare, Deltagare eller Webbplatsdeltagare i appen. Den lägst privilegierade roll som identiteten behöver är "Websites Contributor".