Kontinuerlig distribution till Azure App Service
Azure App Service kontinuerlig distribution från lagringsplatsen GitHub, Bitbucketoch Azure Repos genom att hämta de senaste uppdateringarna.
Anteckning
Sidan Development Center (klassisk) i Azure Portal, en tidigare version av distributionsfunktionen, blev inaktuell i mars 2021. Den här ändringen påverkar inte befintliga distributionsinställningar i din app och du kan fortsätta att hantera appdistributionen från sidan Distributionscenter i portalen.
Förbereda din lagringsplats
Om du vill hämta automatiserade Azure App Service från en byggserver kontrollerar du att lagringsplatsens rot har rätt filer i projektet.
| Körning | Rotkatalogfiler |
|---|---|
| ASP.NET (endast Windows) | *.sln, *.csproj eller default.aspx |
| ASP.NET Core | *.sln eller *.csproj |
| PHP | Index.php |
| Ruby (endast Linux) | Gemfile |
| Node.js | server.js, app.js ellerpackage.js på med ett startskript |
| Python | * .py, requirements.txt eller runtime.txt |
| HTML | default.htm, default.html, default.asp, index.htm, index.html eller iisstart.htm |
| WebJobs | <job_name>/run.<extension> under _ Appdata/jobb/kontinuerlig för kontinuerliga webbjobb eller _ Appdata/jobb/utlösta för utlösta webbjobb. Mer information finns i Kudu WebJobs-dokumentationen. |
| Functions | Se Kontinuerlig distribution för Azure Functions. |
Om du vill anpassa distributionen inkluderar du en .deployment-fil i lagringsplatsens rot. Mer information finns i Anpassa distributioner och Anpassat distributionsskript.
Anteckning
Om du använder Visual Studio kan Visual Studio skapa en lagringsplats åt dig. Projektet kommer omedelbart att vara redo för distribution via Git.
Konfigurera distributionskällan
I Azure Portalgår du till hanteringssidan för din App Service appen.
I den vänstra rutan väljer du Distributionscenter. Välj sedan Inställningar.
I rutan Källa väljer du något av CI/CD-alternativen:

Välj den flik som motsvarar byggprovidern för att fortsätta.
GitHub Actions är standardbyggprovidern. Om du vill ändra providern väljer du Ändra provider App Service > Build Service (Kudu) > OK.
Anteckning
Om du vill använda Azure Pipelines som byggprovider App Service din app konfigurerar du CI/CD direkt från Azure Pipelines. Konfigurera den inte i App Service. Alternativet Azure Pipelines pekar bara åt rätt håll.
Om du distribuerar från GitHub första gången väljer du Auktorisera och följer anvisningarna för auktorisering. Om du vill distribuera från en annan användares lagringsplats väljer du Ändra konto.
När du har auktoriserat ditt Azure-GitHub väljer du organisation, lagringsplats och gren för att konfigurera CI/CD för. Om du inte hittar en organisation eller lagringsplats kan du behöva aktivera fler behörigheter för GitHub. Mer information finns i Hantera åtkomst till din organisations lagringsplatsen.
När GitHub Åtgärder har valts som versionsprovider kan du välja den arbetsflödesfil som du vill använda med hjälp av listrutan Körningsstack och Version. Azure sparar den här arbetsflödesfilen till den GitHub lagringsplatsen för att hantera bygg- och distributionsuppgifter. Om du vill se filen innan du sparar ändringarna väljer du Förhandsgranska fil.
Anteckning
App Service identifierar språkstackinställningen för din app och väljer den lämpligaste arbetsflödesmallen. Om du väljer en annan mall kan den distribuera en app som inte körs korrekt. Mer information finns i Så här fungerar GitHub Actions-byggarprovidern.
Välj Spara.
Nya genomföranden i den valda lagringsplatsen och grenen distribueras nu kontinuerligt till din App Service app. Du kan spåra genomföranden och distributioner på fliken Loggar.
Inaktivera kontinuerlig distribution
I Azure Portalgår du till hanteringssidan för din App Service appen.
I den vänstra rutan väljer du Distributionscenter. Välj sedan Inställningar > Koppla från:

Som standard bevaras GitHub Actions-arbetsflödesfilen på lagringsplatsen, men den fortsätter att utlösa distributionen till din app. Om du vill ta bort filen från lagringsplatsen väljer du Ta bort arbetsflödesfil.
Välj OK.
Vad händer med min app under distributionen?
Alla distributionsmetoder som stöds officiellt gör ändringar i filerna i mappen /home/site/wwwroot i din app. De här filerna används för att köra din app. Distributionen kan därför misslyckas på grund av låsta filer. Appen kan också bete sig oförutsägbart under distributionen eftersom alla filer inte uppdateras samtidigt. Det här beteendet är oönskat för en kundriktad app. Det finns några sätt att undvika dessa problem:
- Kör appen direkt från ZIP-paketetutan att packa upp den.
- Stoppa appen eller aktivera offlineläge för den under distributionen. Mer information finns i Hantera låsta filer under distributionen.
- Distribuera till en mellanlagringsplats med automatisk växling aktiverat.
Så här fungerar GitHub Actions-byggarprovidern
Build-providern GitHub Actions är ett alternativ för CI/CD från GitHub. De här åtgärderna slutförs för att konfigurera CI/CD:
- Sätter in en GitHub Actions-arbetsflödesfil på din GitHub för att hantera bygg- och distributionsuppgifter till App Service.
- Lägger 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.
- Samlar in information från arbetsflödets körningsloggar och visar den på fliken Loggar i appens distributionscenter.
Du kan anpassa GitHub Actions-byggarprovidern på följande sätt:
- Anpassa arbetsflödesfilen när den har genererats i din GitHub lagringsplats. Mer information finns i Arbetsflödessyntax för GitHub Actions. Se bara till att arbetsflödet distribueras till App Service med åtgärden azure/webapps-deploy.
- Om den valda grenen är skyddad kan du fortfarande förhandsgranska arbetsflödesfilen utan att spara konfigurationen och sedan lägga till den manuellt på din lagringsplats. Den här metoden ger dig inte loggintegrering med Azure Portal.
- I stället för att använda en publiceringsprofil distribuerar du med hjälp av ett huvudnamn för tjänsten Azure Active Directory.
Autentisera med hjälp av ett huvudnamn för tjänsten
Den här valfria konfigurationen ersätter standardautentisering med publiceringsprofiler i den genererade arbetsflödesfilen.
Generera ett huvudnamn för tjänsten med kommandot az ad sp create-for-rbac i Azure CLI. I följande exempel ersätter <subscription-id> du , och med dina egna <group-name> <app-name> värden:
az ad sp create-for-rbac --name "myAppDeployAuth" --role contributor \ --scopes /subscriptions/<subscription-id>/resourceGroups/<group-name>/providers/Microsoft.Web/sites/<app-name> \ --sdk-authViktigt
Av säkerhetsskäl beviljar du den minsta nödvändiga åtkomsten till tjänstens huvudnamn. Omfånget i föregående exempel är begränsat till den App Service appen och inte hela resursgruppen.
Spara hela JSON-utdata för nästa steg, inklusive den översta nivån
{}.I GitHubpå lagringsplatsen väljer du Välj Inställningar > Lägg till en ny hemlighet i > .
Klistra in hela JSON-utdata från Azure CLI-kommandot i hemlighetens värdefält. Ge hemligheten ett namn som
AZURE_CREDENTIALS.I arbetsflödesfilen som genereras av distributionscentret ändrar du steget så att det ser ut som i följande exempel (som ändras från en
azure/webapps-deployNode.js arbetsflödesfil):- name: Sign in to Azure # Use the GitHub secret you added. - uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - name: Deploy to Azure Web App # Remove publish-profile. - uses: azure/webapps-deploy@v2 with: app-name: '<app-name>' slot-name: 'production' package: . - name: Sign out of Azure. run: | az logout
Distribuera från andra lagringsplatsen
För Windows-appar kan du manuellt konfigurera kontinuerlig distribution från en Git- eller Mercurial-molnlagringsplats som portalen inte har direkt stöd för, till exempel GitLab. Det gör du genom att välja Extern Git i listrutan Källa. Mer information finns i Konfigurera kontinuerlig distribution med manuella steg.