Kontinuerlig distribution till Azure App Service

Azure App Service kontinuerlig distribution från GitHub-, BitBucket-och Azure Repos-lagringsplatsen genom att hämta de senaste uppdateringarna.

Anteckning

Sidan Development Center (klassisk) i Azure Portal, som är den gamla distributionsupplevelsen, kommer att bli 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 på sidan Distributionscenter.

Förbered din lagrings plats

Om du vill hämta automatiserade versioner från Azure App Service build Server kontrollerar du att din lagrings plats rot har rätt filer i projektet.

Körning Rot Katalog-filer
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 eller package.jspå med ett start skript
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/kontinuerligt för kontinuerliga Webbjobb eller AppData/ _ jobb/utlöses för utlösta WebJobs. Mer information finns i kudu WebJobs documentation.
Functions Se kontinuerlig distribution för Azure Functions.

Om du vill anpassa distributionen inkluderar du en . distributions fil i lagrings platsens rot. Mer information finns i Anpassa distributioner och anpassat distributions skript.

Anteckning

Om du utvecklar i Visual Studio skapar du en lagrings plats för Visual Studio. Projektet är omedelbart klart att distribueras med hjälp av git.

Konfigurera distributionskälla

  1. I Azure Portalnavigerar du till hanteringssidan för din App Service appen.

  2. Klicka på Inställningar för Distributionscenter på den vänstra > menyn.

  3. I Källa väljer du något av CI/CD-alternativen.

    Visar hur du väljer distributionskälla i Distributionscenter för Azure App Service

Välj den flik som motsvarar ditt val för stegen.

  1. GitHub Actions är standardbyggprovidern. Om du vill ändra den klickar du på Ändra provider App Service Build > Service (Kudu) > OK.

    Anteckning

    Om du vill använda Azure Pipelines som byggprovider App Service din app ska du inte konfigurera den i App Service. Konfigurera i stället CI/CD direkt från Azure Pipelines. Alternativet Azure Pipelines pekar bara åt rätt håll.

  2. Om du distribuerar från GitHub för första gången klickar du på Auktorisera och följer anvisningarna för auktorisering. Om du vill distribuera från en annan användares lagringsplats klickar du på Ändra konto.

  3. När du har auktoriserat ditt Azure-konto med GitHub väljer du organisation, lagringsplats och gren för att konfigurera CI/CD för.

  4. När GitHub Actions är den valda versionsprovidern kan du välja den arbetsflödesfil som du vill använda med listrutan Körningsstack och Version. Azure sparar den här arbetsflödesfilen till den valda GitHub-lagringsplatsen för att hantera bygg- och distributionsuppgifter. Om du vill se filen innan du sparar ändringarna klickar du på 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.

  5. Klicka på Spara.

    Nya genomföranden i den valda lagringsplatsen och grenen distribueras nu kontinuerligt App Service din app. Du kan spåra genomföranden och distributioner på fliken Loggar.

Inaktivera kontinuerlig distribution

  1. I Azure Portalnavigerar du till hanteringssidan för din App Service appen.

  2. På den vänstra menyn klickar du på Inställningar för > Distributionscenter Koppla > från.

    Visar hur du kopplar från synkroniseringen av molnmappen med App Service-appen i Azure Portal.

  3. 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 den från lagringsplatsen väljer du Ta bort arbetsflödesfil.

  4. Klicka på OK.

Vad händer med min app under distributionen?

Alla distributions metoder som stöds officiellt gör ändringar i filerna i /home/site/wwwroot appen i appen. De här filerna används för att köra din app. Distributionen kan därför inte utföras på grund av låsta filer. Appen kan också uppstå oförutsägbart under distributionen, eftersom inte alla filer uppdateras samtidigt. Detta är olämpligt för en kundriktad app. Det finns flera olika sätt att undvika dessa problem:

Så här GitHub Actions-byggarprovidern

Den GitHub Actions är ett alternativ för CI/CD från GitHuboch gör följande för att konfigurera CI/CD:

  • Sätter in en GitHub Actions arbetsflödesfil på din GitHub-lagringsplats 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 på följande sätt:

  • Anpassa arbetsflödesfilen när den har genererats på GitHub-lagringsplatsen. 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 en publiceringsprofil distribuerar du med hjälp av ett huvudnamn för tjänsten Azure Active Directory.

Autentisera med ett huvudnamn för tjänsten

Den här valfria konfigurationen ersätter standardautentisering med publiceringsprofiler i den genererade arbetsflödesfilen.

  1. 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-auth
    

    Viktigt

    Av säkerhetsskäl beviljar du den lägsta 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.

  2. Spara hela JSON-utdata för nästa steg, inklusive den översta nivån {} .

  3. I GitHub bläddrardu till din lagringsplats och väljer Inställningar > Hemligheter > Lägg till en ny hemlighet.

  4. Klistra in hela JSON-utdata från Azure CLI-kommandot i hemlighetens värdefält. Ge hemligheten ett namn som AZURE_CREDENTIALS .

  5. I arbetsflödesfilen som genereras av distributionscentret ändrar du steget med kod som i följande exempel (som ändras från en azure/webapps-deploy Node.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 stöder direkt, till exempel GitLab. Du gör det genom att välja Extern Git i listrutan Källa. Mer information finns i Konfigurera kontinuerlig distribution med manuella steg.

Fler resurser