Implementeren in App Service met behulp van GitHub Actions

Ga aan de slag met GitHub Actions om uw werkstroom te automatiseren en te implementeren in Azure-app Service vanuit GitHub.

Vereisten

  • Een Azure-account met een actief abonnement. Gratis een account maken
  • Een GitHub-account. Als u geen account hebt, kunt u zich registreren voor een gratis account.

Implementatie van GitHub Actions instellen bij het maken van de app

GitHub Actions-implementatie is geïntegreerd in de standaardwizard voor het maken van apps. U hoeft alleen continue implementatie in te stellen op het tabblad Implementatie en de gewenste organisatie, opslagplaats en vertakking te configureren.

A screenshot showing how to enable GitHub Actions deployment in the App Service create wizard.

Wanneer u continue implementatie inschakelt, kiest de wizard voor het maken van apps automatisch de verificatiemethode op basis van de basisverificatieselectie en configureert u uw app en uw GitHub-opslagplaats dienovereenkomstig:

Basisverificatieselectie Verificatiemethode
Uitschakelen Door de gebruiker toegewezen identiteit (OpenID Verbinding maken)
Inschakelen Basisverificatie

Notitie

Als u een foutmelding krijgt bij het maken van uw app waarin wordt aangegeven dat uw Azure-account niet over bepaalde machtigingen beschikt, beschikt het mogelijk niet over de vereiste machtigingen om de door de gebruiker toegewezen identiteit te maken en te configureren. Zie GitHub Actions-implementatie instellen vanuit het Implementatiecentrum voor een alternatief.

Implementatie van GitHub Actions instellen vanuit het Implementatiecentrum

Voor een bestaande app kunt u snel aan de slag met GitHub Actions met behulp van het App Service Deployment Center. Met deze turn-key-methode wordt automatisch een Werkstroombestand voor GitHub Actions gegenereerd op basis van uw toepassingsstack en wordt dit doorgevoerd in uw GitHub-opslagplaats.

Met het Implementatiecentrum kunt u ook eenvoudig de veiligere OpenID configureren Verbinding maken verificatie met de door de gebruiker toegewezen identiteitsoptie.

Als uw Azure-account over de benodigde machtigingen beschikt, kunt u ervoor kiezen om een door de gebruiker toegewezen identiteit te maken. Anders kunt u een bestaande door de gebruiker toegewezen beheerde identiteit selecteren in de vervolgkeuzelijst Identiteit . U kunt samenwerken met uw Azure-beheerder om een door de gebruiker toegewezen beheerde identiteit te maken met de rol Inzender voor websites.

Zie Continue implementatie naar Azure-app Service voor meer informatie.

Een GitHub Actions-werkstroom handmatig instellen

U kunt ook een werkstroom implementeren zonder het Implementatiecentrum te gebruiken.

  1. Implementatiereferenties genereren
  2. Het GitHub-geheim configureren
  3. Het werkstroombestand toevoegen aan uw GitHub-opslagplaats

1. Implementatiereferenties genereren

De aanbevolen manier om te verifiëren met Azure-app Services voor GitHub Actions is met een door de gebruiker gedefinieerde beheerde identiteit en de eenvoudigste manier hiervoor is door de implementatie van GitHub Actions rechtstreeks in de portal te configureren en door de gebruiker toegewezen beheerde identiteit te selecteren.

Notitie

Verificatie met een door de gebruiker toegewezen beheerde identiteit is momenteel in preview.

U kunt ook verifiëren met een service-principal, OpenID-Verbinding maken of een publicatieprofiel.

Notitie

Publicatieprofiel vereist dat basisverificatie is ingeschakeld.

Een publicatieprofiel is een referentie op app-niveau. Stel uw publicatieprofiel in als een GitHub-geheim.

  1. Ga naar uw app-service in Azure Portal.

  2. Selecteer Op de pagina Overzicht het profiel Publiceren ophalen.

  3. Sla het gedownloade bestand op. U gebruikt de inhoud van het bestand om een GitHub-geheim te maken.

Notitie

Vanaf oktober 2020 moet voor Linux-web-apps de app-instelling WEBSITE_WEBDEPLOY_USE_SCM zijn ingesteld truevoordat het publicatieprofiel wordt gedownload. Deze vereiste wordt in de toekomst verwijderd.

2. Het GitHub-geheim configureren

In GitHub, bladert u in uw opslagplaats. Selecteer Instellingen > Beveiligingsgeheimen >> en variabelen Acties > Nieuwe opslagplaatsgeheim.

Als u referenties op app-niveau wilt gebruiken, plakt u de inhoud van het gedownloade publicatieprofielbestand in het waardeveld van het geheim. Geef het geheim AZURE_WEBAPP_PUBLISH_PROFILEeen naam.

Wanneer u het GitHub-werkstroombestand later configureert, gebruikt u de AZURE_WEBAPP_PUBLISH_PROFILE actie Azure Web App implementeren. Voorbeeld:

- uses: azure/webapps-deploy@v2
  with:
    publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}

3. Voeg het werkstroombestand toe aan uw GitHub-opslagplaats

Een werkstroom wordt gedefinieerd door een YAML-bestand (.yml) in het /.github/workflows/ pad in uw GitHub-opslagplaats. Deze definitie bevat de verschillende stappen en parameters die deel uitmaken van de werkstroom.

Het werkstroombestand zou minimaal de volgende afzonderlijke stappen hebben:

  1. Verifieer met App Service met behulp van het GitHub-geheim dat u hebt gemaakt.
  2. Bouw de web-app.
  3. Implementeer de web-app.

Als u uw code wilt implementeren in een App Service-app, gebruikt u de actie azure/webapps-deploy@v3 . De actie vereist de naam van uw web-app en app-name , afhankelijk van uw taalstack, het pad van een *.zip, *.war, *.jar of map om in packagete implementeren. Zie de definitie action.yml voor een volledige lijst met mogelijke invoer voor de azure/webapps-deploy@v3 actie.

In de volgende voorbeelden ziet u het deel van de werkstroom waarmee de web-app wordt gebouwd, in verschillende ondersteunde talen.

De publish-profile invoer moet verwijzen naar het AZURE_WEBAPP_PUBLISH_PROFILE GitHub-geheim dat u eerder hebt gemaakt.

name: .NET Core CI

on: [push]

env:
  AZURE_WEBAPP_NAME: my-app-name    # set this to your application's name
  AZURE_WEBAPP_PACKAGE_PATH: '.'      # set this to the path to your web app project, defaults to the repository root
  DOTNET_VERSION: '6.0.x'           # set this to the dot net version to use

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      # Checkout the repo
      - uses: actions/checkout@main
      
      # Setup .NET Core SDK
      - name: Setup .NET Core
        uses: actions/setup-dotnet@v3
        with:
          dotnet-version: ${{ env.DOTNET_VERSION }} 
      
      # Run dotnet build and publish
      - name: dotnet build and publish
        run: |
          dotnet restore
          dotnet build --configuration Release
          dotnet publish -c Release --property:PublishDir='${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/myapp' 
          
      # Deploy to Azure Web apps
      - name: 'Run Azure webapp deploy action using publish profile credentials'
        uses: azure/webapps-deploy@v3
        with: 
          app-name: ${{ env.AZURE_WEBAPP_NAME }} # Replace with your app name
          publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE  }} # Define secret variable in repository settings as per action documentation
          package: '${{ env.AZURE_WEBAPP_PACKAGE_PATH }}/myapp'

Volgende stappen

Bekijk verwijzingen in Azure GitHub Actions en werkstromen: