Ciągłe wdrażanie do usługi Azure App Service

Azure App Service ciągłe wdrażanie z repozytoriów GitHub, Bitbucket i Azure Repos, ściągając najnowsze aktualizacje.

Uwaga

Strona Centrum rozwoju (klasyczna) w Azure Portal, czyli wcześniejszej wersji funkcji wdrażania, została wycofana w marcu 2021 r. Ta zmiana nie ma wpływu na istniejące ustawienia wdrażania w aplikacji i można nadal zarządzać wdrażaniem aplikacji na stronie Centrum wdrażania w portalu.

Przygotowywanie repozytorium

Aby uzyskać zautomatyzowane kompilacje z Azure App Service kompilacji, upewnij się, że katalog główny repozytorium zawiera poprawne pliki w projekcie.

Środowisko uruchomieniowe Pliki katalogu głównego
ASP.NET (tylko Windows) *.sln, *.csproj lub default.aspx
ASP.NET Core *.sln lub *.csproj
PHP Index.php
Ruby (tylko system Linux) Gemfile
Node.js server.js, app.js lub package.jssię za pomocą skryptu uruchamiania
Python * .py, requirements.txt, lubruntime.txt
HTML default.htm, default.html, default.asp, index.htm, index.html lub iisstart.htm
Zadania WebJob <job_name>/run.<extension> w obszarze Dane _ aplikacji/zadania/ciągłe dla ciągłych zadań WebJob lub Dane _ aplikacji/zadania/wyzwalane dla wyzwalanych zadań WebJob. Aby uzyskać więcej informacji, zobacz dokumentację usługi WebJobs Kudu.
Funkcje Zobacz Temat Continuous deployment for Azure Functions (Ciągłe wdrażanie) Azure Functions.

Aby dostosować wdrożenie, dołącz plik .deployment do katalogu głównego repozytorium. Aby uzyskać więcej informacji, zobacz Customize deployments (Dostosowywanie wdrożeń) i Custom deployment script (Skrypt wdrożenia niestandardowego).

Uwaga

Jeśli używasz Visual Studio, Visual Studio utworzyć repozytorium. Projekt będzie natychmiast gotowy do wdrożenia za pośrednictwem usługi Git.

Konfigurowanie źródła wdrożenia

  1. W Azure Portalprzejdź do strony zarządzania dla aplikacji App Service aplikacji.

  2. W okienku po lewej stronie wybierz pozycję Centrum wdrażania. Następnie wybierz pozycję Ustawienia.

  3. W polu Źródło wybierz jedną z opcji ci/CD:

    Zrzut ekranu przedstawiający sposób wyboru źródła wdrożenia.

Wybierz kartę odpowiadającą dostawcy kompilacji, aby kontynuować.

  1. GitHub actions jest domyślnym dostawcą kompilacji. Aby zmienić dostawcę, wybierz pozycję Zmień dostawcę App Service > Build Service (Kudu) > OK.

    Uwaga

    Aby używać Azure Pipelines jako dostawcy kompilacji dla aplikacji App Service, skonfiguruj ci/CD bezpośrednio z Azure Pipelines. Nie konfiguruj go w App Service. Opcja Azure Pipelines wskazuje tylko właściwy kierunek.

  2. Jeśli wdrażasz z usługi GitHub po raz pierwszy, wybierz pozycję Autoryzuj i postępuj zgodnie z monitami autoryzacji. Jeśli chcesz wdrożyć z repozytorium innego użytkownika, wybierz pozycję Zmień konto.

  3. Po autoryzowaniu konta platformy Azure w usłudze GitHub wybierz pozycję Organizacja, Repozytorium i Gałąź, aby skonfigurować ci/CD. Jeśli nie możesz znaleźć organizacji lub repozytorium, może być konieczne włączenie większej liczby uprawnień na GitHub. Aby uzyskać więcej informacji, zobacz Zarządzanie dostępem do repozytoriów organizacji.

  4. Po GitHub dostawcy kompilacji możesz wybrać plik przepływu pracy przy użyciu listy rozwijanej Stos środowiska uruchomieniowego i Wersja. Platforma Azure zatwierdza ten plik przepływu pracy w wybranym repozytorium GitHub w celu obsługi zadań kompilacji i wdrażania. Aby wyświetlić plik przed zapisaniem zmian, wybierz pozycję Podgląd pliku.

    Uwaga

    App Service wykrywa ustawienie stosu języka aplikacji i wybiera najbardziej odpowiedni szablon przepływu pracy. Jeśli wybierzesz inny szablon, może on wdrożyć aplikację, która nie działa prawidłowo. Aby uzyskać więcej informacji, zobacz How the GitHub Actions build provider works (Jak działa dostawca kompilacji GitHub Actions).

  5. Wybierz pozycję Zapisz.

    Nowe zatwierdzenia w wybranym repozytorium i gałęzi są teraz stale wdrażane w App Service aplikacji. Zatwierdzenia i wdrożenia można śledzić na karcie Dzienniki.

Wyłączanie ciągłego wdrażania

  1. W Azure Portalprzejdź do strony zarządzania dla aplikacji App Service aplikacji.

  2. W okienku po lewej stronie wybierz pozycję Centrum wdrażania. Następnie wybierz pozycję Ustawienia > Rozłącz:

    Zrzut ekranu przedstawiający sposób rozłączenia synchronizacji folderu w chmurze z aplikacją App Service w Azure Portal.

  3. Domyślnie plik przepływu pracy GitHub Actions jest zachowywany w repozytorium, ale nadal będzie wyzwalać wdrożenie w aplikacji. Aby usunąć plik z repozytorium, wybierz pozycję Usuń plik przepływu pracy.

  4. Wybierz przycisk OK.

Co się stanie z moją aplikacją podczas wdrażania?

Wszystkie oficjalnie obsługiwane metody wdrażania wprowadzają zmiany w plikach w folderze /home/site/wwwroot aplikacji. Te pliki są używane do uruchamiania aplikacji. Dlatego wdrożenie może się nie powieść z powodu zablokowanych plików. Aplikacja może również zachowywać się nieprzewidywalnie podczas wdrażania, ponieważ nie wszystkie pliki są aktualizowane w tym samym czasie. To zachowanie jest niepożądane w przypadku aplikacji skierowanej do klienta. Istnieje kilka sposobów, aby uniknąć tych problemów:

Jak działa dostawca kompilacji GitHub Actions

Dostawca GitHub Actions jest opcją dla ci/CDz GitHub . W celu skonfigurowania usługi CI/CD są w nim ukończone następujące akcje:

  • Deponuje plik przepływu pracy GitHub Actions do repozytorium GitHub w celu obsługi zadań kompilacji i wdrażania w App Service.
  • Dodaje profil publikowania dla aplikacji jako GitHub tajny. Plik przepływu pracy używa tego tajnego klucz do uwierzytelniania w App Service.
  • Przechwytuje informacje z dzienników uruchamiania przepływu pracy i wyświetla je na karcie Dzienniki w Centrum wdrażania aplikacji.

Dostawcę kompilacji akcji GitHub można dostosować w następujące sposoby:

  • Dostosuj plik przepływu pracy po jego wygenerowaniu w GitHub repozytorium. Aby uzyskać więcej informacji, zobacz Składnia przepływu pracy dla GitHub Akcje. Wystarczy upewnić się, że przepływ pracy jest wdrażany App Service użyciu akcji azure/webapps-deploy.
  • Jeśli wybrana gałąź jest chroniona, nadal możesz wyświetlić podgląd pliku przepływu pracy bez zapisywania konfiguracji, a następnie ręcznie dodać go do repozytorium. Ta metoda nie umożliwia integracji dzienników z Azure Portal.
  • Zamiast używać profilu publikowania, należy wdrożyć go przy użyciu jednostki usługi w Azure Active Directory.

Uwierzytelnianie przy użyciu jednostki usługi

Ta opcjonalna konfiguracja zastępuje domyślne uwierzytelnianie profilami publikowania w wygenerowanym pliku przepływu pracy.

  1. Wygeneruj jednostkę usługi za pomocą polecenia az ad sp create-for-rbac w interfejsie wiersza polecenia platformy Azure. W poniższym przykładzie zastąp <subscription-id> wartości <group-name> , i <app-name> własnymi wartościami:

    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
    

    Ważne

    Ze względów bezpieczeństwa przyznaj minimalny wymagany dostęp do jednostki usługi. Zakres w poprzednim przykładzie jest ograniczony do określonej App Service, a nie całej grupy zasobów.

  2. Zapisz wszystkie dane wyjściowe JSON do następnego kroku, w tym plik najwyższego poziomu {} .

  3. W GitHubrepozytorium wybierz pozycję Wpisy tajne Ustawienia > > Dodaj nowy wpis tajny.

  4. Wklej całe dane wyjściowe JSON z polecenia interfejsu wiersza polecenia platformy Azure do pola wartości we kluczu tajnym. Nadaj kluczowi tajnego nazwę, na przykład AZURE_CREDENTIALS .

  5. W pliku przepływu pracy wygenerowanym przez Centrum wdrażania zmodyfikuj krok tak, aby wyglądał jak w poniższym przykładzie (który jest modyfikowany z Node.js azure/webapps-deploy przepływu pracy):

    - 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
    

Wdrażanie z innych repozytoriów

W Windows aplikacji można ręcznie skonfigurować ciągłe wdrażanie z repozytorium Git lub Mercurial w chmurze, które nie jest obsługiwane bezpośrednio przez portal, na przykład GitLab. W tym celu wybierz pozycję External Git (Zewnętrzne repozytorium Git) z listy rozwijanej Source (Źródło). Aby uzyskać więcej informacji, zobacz Konfigurowanie ciągłego wdrażania przy użyciu kroków ręcznych.

Więcej zasobów