Continue implementatie naar Azure App Service

Azure App Service maakt continue implementatie vanuit GitHub, Bitbucketen Azure-opslagplaatsen mogelijk door de meest recente updates binnen te halen.

Notitie

De pagina Development Center (klassiek) in de Azure Portal, een eerdere versie van de implementatiefunctionaliteit, is in maart 2021 afgeschaft. Deze wijziging heeft geen invloed op bestaande implementatie-instellingen in uw app en u kunt app-implementatie blijven beheren via de pagina Implementatiecentrum in de portal.

Uw opslagplaats voorbereiden

Als u geautomatiseerde builds wilt Azure App Service buildserver, moet u ervoor zorgen dat de hoofdmap van uw opslagplaats de juiste bestanden in uw project heeft.

Runtime Bestanden in hoofdmap
ASP.NET (alleen Windows) *.sln, *.csproj of default.aspx
ASP.NET Core *.sln of *.csproj
PHP index.php
Ruby (alleen Linux) Gemfile
Node.js server.js, app.js of package.json met een startscript
Python *.py, requirements.txt of runtime.txt
HTML default.htm, default.html, default.asp, index.htm, index.html of iisstart.htm
WebJobs <job_name>/run.<extension> onder App_Data/jobs/continuous voor continue WebJobs, of App_Data/jobs/triggered voor geactiveerde WebJobs. Zie Kudu WebJobs documentation (Documentatie over Kudu WebJobs) voor meer informatie.
Functies Zie Continue implementatie voor Azure Functions.

Als u uw implementatie wilt aanpassen, neemt u een DEPLOYMENT-bestand op in de hoofdmap van de opslagplaats. Zie Customize deployments (Implementaties aanpassen) en Custom deployment script (Aangepast implementatiescript) voor meer informatie.

Notitie

Als u een Visual Studio gebruikt, Visual Studio een opslagplaats voor u maken. Uw project is onmiddellijk gereed voor implementatie via Git.

De implementatiebron configureren

  1. Ga in Azure Portalnaar de beheerpagina voor uw App Service app.

  2. Selecteer Implementatiecentrum in het linkerdeelvenster. Selecteer vervolgens Instellingen.

  3. Selecteer in het vak Bron een van de CI/CD-opties:

    Schermopname die laat zien hoe u de implementatiebron kiest.

Selecteer het tabblad dat overeenkomt met uw buildprovider om door te gaan.

  1. GitHub Actions is de standaard buildprovider. Als u de provider wilt wijzigen, selecteert > u Provider wijzigen App Service Build Service (Kudu) > OK.

    Notitie

    Als u Azure Pipelines wilt gebruiken als de buildprovider voor uw App Service app, configureert u CI/CD rechtstreeks vanuit Azure Pipelines. Configureer deze niet in App Service. De optie Azure Pipelines wijst u in de juiste richting.

  2. Als u voor het eerst implementeert vanuit GitHub, selecteert u Autorisatie en volgt u de autorisatieprompts. Als u wilt implementeren vanuit een andere gebruikersopslagplaats, selecteert u Account wijzigen.

  3. Nadat u uw Azure-account hebt geautoriseerd GitHub, selecteert u organisatie, opslagplaats en vertakking om CI/CD voor te configureren. Als u geen organisatie of opslagplaats kunt vinden, moet u mogelijk meer machtigingen inschakelen voor GitHub. Zie Toegang tot de opslagplaatsen van uw organisatie beheren voor meer informatie.

  4. Wanneer GitHub Actions is geselecteerd als de build-provider, kunt u het werkstroombestand selecteren dat u wilt met behulp van de vervolgkeuzelijsten Runtimestack en Versie. Azure legt dit werkstroombestand vast in de geselecteerde GitHub opslagplaats voor het afhandelen van build- en implementatietaken. Als u het bestand wilt bekijken voordat u uw wijzigingen opgeslagen, selecteert u Voorbeeldbestand.

    Notitie

    App Service detecteert de taalstackinstelling van uw app en selecteert de meest geschikte werkstroomsjabloon. Als u een andere sjabloon kiest, wordt er mogelijk een app geïmplementeerd die niet goed wordt uitgevoerd. Zie How the GitHub Actions build provider works (Hoe de buildprovider GitHub actions werkt) voor meer informatie.

  5. Selecteer Opslaan.

    Nieuwe door commits in de geselecteerde opslagplaats en vertakking worden nu continu geïmplementeerd in App Service app. U kunt de door commits en implementaties volgen op het tabblad Logboeken.

Continue implementatie uitschakelen

  1. Ga in Azure Portalnaar de beheerpagina voor uw App Service app.

  2. Selecteer Implementatiecentrum in het linkerdeelvenster. Selecteer vervolgens Instellingen Verbinding > verbreken:

    Schermopname die laat zien hoe u de synchronisatie van uw cloudmap met uw App Service-app in de Azure Portal.

  3. Het werkstroombestand GitHub acties blijft standaard behouden in uw opslagplaats, maar blijft implementatie naar uw app activeren. Als u het bestand uit uw opslagplaats wilt verwijderen, selecteert u Werkstroombestand verwijderen.

  4. Selecteer OK.

Wat gebeurt er met mijn app tijdens de implementatie?

Alle officieel ondersteunde implementatiemethoden brengen wijzigingen aan in de bestanden in de map /home/site/wwwroot van uw app. Deze bestanden worden gebruikt om uw app uit te voeren. De implementatie kan dus mislukken vanwege vergrendelde bestanden. De app gedraagt zich mogelijk ook onvoorspelbaar tijdens de implementatie, omdat de bestanden niet allemaal op hetzelfde moment worden bijgewerkt. Dit gedrag is ongewenst voor een klantgerichte app. Er zijn een aantal manieren om deze problemen te voorkomen:

Hoe de buildprovider GitHub Actions werkt

De GitHub Actions-buildprovider is een optie voor CI/CD van GitHub. Deze acties voor het instellen van CI/CD worden voltooid:

  • Zet een werkstroombestand GitHub acties in uw GitHub opslagplaats voor het afhandelen van build- en implementatietaken in App Service.
  • Hiermee wordt het publicatieprofiel voor uw app als een GitHub toegevoegd. Het werkstroombestand gebruikt dit geheim om te verifiëren met App Service.
  • Legt informatie vast uit de werkstroomrunlogboeken en geeft deze weer op het tabblad Logboeken in het Implementatiecentrum van uw app.

U kunt de buildprovider GitHub Acties op de volgende manieren aanpassen:

  • Pas het werkstroombestand aan nadat het is gegenereerd in uw GitHub opslagplaats. Zie Werkstroomsyntaxis voor GitHub Acties voor meer informatie. Zorg ervoor dat de werkstroom wordt geïmplementeerd in App Service met de actie azure/webapps-deploy.
  • Als de geselecteerde vertakking is beveiligd, kunt u nog steeds een voorbeeld van het werkstroombestand bekijken zonder de configuratie op te slaan en het vervolgens handmatig toe te voegen aan uw opslagplaats. Deze methode geeft u geen logboekintegratie met de Azure Portal.
  • In plaats van een publicatieprofiel te gebruiken, implementeert u met behulp van een service-principal in Azure Active Directory.

Verifiëren met behulp van een service-principal

Deze optionele configuratie vervangt de standaardverificatie door publicatieprofielen in het gegenereerde werkstroombestand.

  1. Genereer een service-principal met behulp van de opdracht az ad sp create-for-rbac in de Azure CLI. Vervang in het volgende voorbeeld <subscription-id> , en door uw eigen <group-name> <app-name> waarden:

    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
    

    Belangrijk

    Voor beveiliging verleent u de minimaal vereiste toegang tot de service-principal. Het bereik in het vorige voorbeeld is beperkt tot de specifieke App Service app en niet tot de hele resourcegroep.

  2. Sla de volledige JSON-uitvoer op voor de volgende stap, met inbegrip van het hoogste {} niveau.

  3. Selecteer GitHubin uw opslagplaats in Instellingen > Geheimen > Een nieuw geheim toevoegen.

  4. Plak de volledige JSON-uitvoer van de Azure CLI-opdracht in het waardeveld van het geheim. Geef het geheim een naam zoals AZURE_CREDENTIALS .

  5. Wijzig in het werkstroombestand dat is gegenereerd door het implementatiecentrum de stap zodat deze er uitziet zoals in het volgende voorbeeld (dat is gewijzigd op basis van azure/webapps-deploy Node.js werkstroombestand):

    - 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
    

Implementeren vanuit andere opslagplaatsen

Voor Windows-apps kunt u handmatig continue implementatie configureren vanuit een Git- of Mercurial-opslagplaats in de cloud die niet rechtstreeks door de portal wordt ondersteund, zoals GitLab. U doet dit door Externe Git te selecteren in de vervolgkeuzelijst Bron. Zie Continue implementatie instellen met behulp van handmatige stappen voor meer informatie.

Meer bronnen