Wdrażanie w usłudze App Service przy użyciu funkcji GitHub Actions

Rozpocznij pracę z funkcją GitHub Actions, aby zautomatyzować przepływ pracy i wdrożyć go w usłudze aplikacja systemu Azure z usługi GitHub.

Wymagania wstępne

Konfigurowanie wdrożenia funkcji GitHub Actions podczas tworzenia aplikacji

Wdrożenie funkcji GitHub Actions jest zintegrowane z domyślnym kreatorem tworzenia aplikacji. Wystarczy ustawić opcję Ciągłe wdrażanie na wartość Włącz na karcie Wdrażanie i skonfigurować odpowiednią organizację, repozytorium i gałąź.

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

Po włączeniu ciągłego wdrażania kreator tworzenia aplikacji automatycznie wybiera metodę uwierzytelniania na podstawie wyboru uwierzytelniania podstawowego i odpowiednio konfiguruje aplikację i repozytorium GitHub:

Wybór uwierzytelniania podstawowego Metoda uwierzytelniania
Wyłącz Tożsamość przypisana przez użytkownika (openID Połączenie)
Włączanie Uwierzytelnianie podstawowe

Uwaga

Jeśli podczas tworzenia aplikacji wystąpi błąd informujący, że twoje konto platformy Azure nie ma pewnych uprawnień, może nie mieć wymaganych uprawnień do tworzenia i konfigurowania tożsamości przypisanej przez użytkownika. Aby uzyskać alternatywę, zobacz Konfigurowanie wdrożenia funkcji GitHub Actions z Centrum wdrażania.

Konfigurowanie wdrożenia funkcji GitHub Actions z Centrum wdrażania

W przypadku istniejącej aplikacji możesz szybko rozpocząć pracę z funkcją GitHub Actions przy użyciu Centrum wdrażania usługi App Service. Ta metoda turn-key automatycznie generuje plik przepływu pracy funkcji GitHub Actions na podstawie stosu aplikacji i zatwierdza go w repozytorium GitHub.

Centrum wdrażania umożliwia również łatwe skonfigurowanie bezpieczniejszego uwierzytelniania openID Połączenie przy użyciu opcji tożsamości przypisanej przez użytkownika.

Jeśli twoje konto platformy Azure ma wymagane uprawnienia, możesz wybrać opcję utworzenia tożsamości przypisanej przez użytkownika. W przeciwnym razie możesz wybrać istniejącą tożsamość zarządzaną przypisaną przez użytkownika na liście rozwijanej Tożsamość . Możesz pracować z administratorem platformy Azure, aby utworzyć tożsamość zarządzaną przypisaną przez użytkownika z rolą Współautor witryny internetowej.

Aby uzyskać więcej informacji, zobacz Ciągłe wdrażanie w usłudze aplikacja systemu Azure Service.

Ręczne konfigurowanie przepływu pracy funkcji GitHub Actions

Przepływ pracy można również wdrożyć bez korzystania z Centrum wdrażania.

  1. Generowanie poświadczeń wdrożenia
  2. Konfigurowanie wpisu tajnego usługi GitHub
  3. Dodawanie pliku przepływu pracy do repozytorium GitHub

1. Generowanie poświadczeń wdrożenia

Zalecanym sposobem uwierzytelniania za pomocą usług aplikacja systemu Azure Services for GitHub Actions jest użycie tożsamości zarządzanej zdefiniowanej przez użytkownika. Najprostszym sposobem jest skonfigurowanie wdrożenia funkcji GitHub Actions bezpośrednio w portalu i wybranie tożsamości zarządzanej przypisanej przez użytkownika.

Uwaga

Uwierzytelnianie przy użyciu tożsamości zarządzanej przypisanej przez użytkownika jest obecnie dostępne w wersji zapoznawczej.

Alternatywnie możesz uwierzytelnić się za pomocą jednostki usługi, Połączenie OpenID lub profilu publikowania.

Uwaga

Profil publikowania wymaga włączenia uwierzytelniania podstawowego.

Profil publikowania to poświadczenia na poziomie aplikacji. Skonfiguruj profil publikowania jako wpis tajny usługi GitHub.

  1. Przejdź do usługi app service w witrynie Azure Portal.

  2. Na stronie Przegląd wybierz pozycję Pobierz profil publikowania.

  3. Zapisz pobrany plik. Zawartość pliku zostanie użyta do utworzenia wpisu tajnego usługi GitHub.

Uwaga

Od października 2020 r. aplikacje internetowe systemu Linux wymagają ustawienia WEBSITE_WEBDEPLOY_USE_SCM aplikacji ustawionego trueprzed pobraniem profilu publikowania. To wymaganie zostanie usunięte w przyszłości.

2. Konfigurowanie wpisu tajnego usługi GitHub

W usłudze GitHub przejrzyj repozytorium. Wybierz pozycję Ustawienia > Wpisy tajne zabezpieczeń > i zmienne > Akcje > Nowy wpis tajny repozytorium.

Aby użyć poświadczeń na poziomie aplikacji, wklej zawartość pobranego pliku profilu publikowania w polu wartości wpisu tajnego. Nadaj kluczowi nazwę wpisu tajnego AZURE_WEBAPP_PUBLISH_PROFILE.

Podczas późniejszego konfigurowania pliku przepływu pracy usługi GitHub należy użyć AZURE_WEBAPP_PUBLISH_PROFILE akcji wdróż aplikację internetową platformy Azure. Na przykład:

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

3. Dodawanie pliku przepływu pracy do repozytorium GitHub

Przepływ pracy jest definiowany przez plik YAML (.yml) w /.github/workflows/ ścieżce w repozytorium GitHub. Ta definicja zawiera różne kroki i parametry tworzące przepływ pracy.

Plik przepływu pracy musi mieć co najmniej następujące odrębne kroki:

  1. Uwierzytelnianie w usłudze App Service przy użyciu utworzonego wpisu tajnego usługi GitHub.
  2. Skompiluj aplikację internetową.
  3. Wdróż aplikację internetową.

Aby wdrożyć kod w aplikacji usługi App Service, użyj akcji azure/webapps-deploy@v3 . Akcja wymaga nazwy aplikacji internetowej w app-name pliku i, w zależności od stosu języka, ścieżki *.zip, *.war, *.jar lub folderu do wdrożenia w programie package. Aby uzyskać pełną listę możliwych danych wejściowych dla azure/webapps-deploy@v3 akcji, zobacz definicję action.yml .

W poniższych przykładach przedstawiono część przepływu pracy, który kompiluje aplikację internetową w różnych obsługiwanych językach.

Dane publish-profile wejściowe powinny odwoływać się do utworzonego wcześniej wpisu tajnego AZURE_WEBAPP_PUBLISH_PROFILEusługi GitHub.

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'

Następne kroki

Zapoznaj się z odwołaniami do funkcji Azure GitHub Actions i przepływów pracy: