Udostępnij za pomocą


Konfigurowanie ciągłego wdrażania w usłudze Azure App Service

W tym artykule wyjaśniono, jak skonfigurować ciągłe wdrażanie (CD) w usłudze Azure App Service , pobierając aktualizacje z usług GitHub, Bitbucket, Azure Repos lub innych repozytoriów.

Wymagania wstępne

Uprawnienia do zapisu aplikacji Azure App Service w repozytorium systemu kontroli wersji.

Przygotowywanie repozytorium

Aby uzyskać automatyczne kompilacje z serwera kompilacji usługi App Service, upewnij się, że katalog główny repozytorium ma poprawne pliki w projekcie.

Środowisko uruchomieniowe Pliki katalogu głównego
ASP.NET (tylko system Windows) *.sln, *.csprojlub default.aspx.
ASP.NET Core *.sln lub *.csproj.
PHP index.php.
Ruby (tylko system Linux) Gemfile.
Node.js server.js, app.jslub package.json za pomocą skryptu startowego.
Pyton *.py, requirements.txtlub runtime.txt.
HTML default.htm, default.html, , default.asp, index.htm, index.htmllub iisstart.htm.
Zadania WebJob <job_name>/run.<extension> w obszarze App_Data/jobs/continuous dla ciągłych WebJobs, lub App_Data/jobs/triggered dla wyzwalanych WebJobs. Aby uzyskać więcej informacji, zobacz dokumentację usługi Kudu WebJobs.
Funkcje Zobacz Ciągłe wdrażanie dla usługi Azure Functions.

Aby dostosować wdrożenie, dołącz .deployment plik do katalogu głównego repozytorium. Aby uzyskać więcej informacji, zobacz Dostosowywanie wdrożeń i Skrypt niestandardowego wdrażania.

Wskazówka

Program Visual Studio może utworzyć repozytorium dla Ciebie. Dzięki tej metodzie projekt jest natychmiast gotowy do wdrożenia za pośrednictwem usługi Git.

Włącz ciągłe wdrażanie

  1. W witrynie Azure Portal przejdź do strony aplikacji usługi App Service i wybierz pozycję Centrum wdrażania z menu nawigacji po lewej stronie.

  2. Na karcie Ustawienia w obszarze Źródło wybierz typ repozytorium kontroli źródła.

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

  3. Postępuj zgodnie z instrukcjami dla typu źródłowego, aby skonfigurować wdrożenie.

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

Wszystkie wymienione źródła mogą być kompilowane za pomocą usługi App Service Build Service. Niektóre źródła mogą być również kompilowane za pomocą GitHub Actions lub Azure Pipelines. Aby uzyskać więcej informacji, zobacz Dostawcy kompilacji.

GitHub Actions jest domyślnym dostawcą procesu budowania na GitHub. Aby zmienić dostawcę, wybierz pozycję Zmień dostawcę, wybierz pozycję App Service Build Service lub Azure Pipelines, a następnie wybierz przycisk OK.

W razie potrzeby wybierz pozycję Autoryzuj i postępuj zgodnie z monitami autoryzacji dla usługi GitHub. Aby wdrożyć z repozytorium innego użytkownika, wybierz pozycję Zmień konto.

  1. Wybierz odpowiednią organizację, repozytorium i gałąź GitHub.

    Jeśli nie możesz znaleźć organizacji lub repozytorium, może być konieczne włączenie większej liczby uprawnień w usłudze GitHub. Aby uzyskać więcej informacji, zobacz Zarządzanie dostępem do repozytoriów organizacji.

  2. W obszarze Typ uwierzytelniania wybierz pozycję Tożsamość przypisana przez użytkownika, aby uzyskać lepsze zabezpieczenia.

    Jeśli twoje konto platformy Azure ma wymagane uprawnienia, usługa App Service tworzy tożsamość zarządzaną przypisaną przez użytkownika lub możesz wybrać istniejącą tożsamość zarządzaną. Jeśli nie masz wymaganych uprawnień, skontaktuj się z administratorem platformy Azure, aby utworzyć tożsamość z wymaganą rolą w aplikacji, a następnie wybierz ją na liście rozwijanej.

  3. Usługa App Service wybiera szablon przepływu pracy na podstawie ustawienia stosu języka aplikacji i zatwierdza go w wybranym repozytorium GitHub. Opcjonalnie możesz wybrać pozycję Plik podglądu , aby wyświetlić plik przepływu pracy przed zapisaniem zmian.

  4. Wybierz pozycję Zapisz.

Nowe zatwierdzenia w wybranym repozytorium i gałęzi są teraz wdrażane w sposób ciągły w aplikacji usługi App Service. Można śledzić zatwierdzenia i wdrożenia na zakładce Dzienniki.

Wyłącz ciągłe wdrażanie

Aby wyłączyć ciągłe wdrażanie dla połączonego źródła:

  1. W witrynie Azure Portal przejdź do strony aplikacji usługi App Service i wybierz pozycję Centrum wdrażania z menu nawigacji po lewej stronie.

  2. Na karcie Ustawienia wybierz pozycję Rozłącz.

    Zrzut ekranu przedstawiający sposób rozłączania synchronizacji folderów w chmurze z aplikacją usługi App Service w witrynie Azure Portal.

  3. Wybierz przycisk OK.

W przypadku usługi GitHub plik przepływu pracy pozostaje domyślnie w repozytorium, ale nie widzisz już zintegrowanego postępu na karcie DziennikiCentrum wdrażania.

Kim są dostawcy kompilacji?

Dostawcy kompilacji ułatwiają tworzenie rozwiązania ciągłej integracji i ciągłego dostarczania (CI/CD) za pomocą usługi Azure App Service przez automatyzację kompilacji, testowania i wdrażania. Niektóre źródła wdrożenia oferują kilka dostępnych opcji dostawców kompilacji. Wszystkie wymienione źródła mogą być kompilowane za pomocą usługi App Service Build Service.

Nie ograniczasz się do wymienionych opcji dostawcy kompilacji, ale usługa App Service pomaga szybko skonfigurować wymienione opcje i rozpocząć rejestrowanie zintegrowanego wdrożenia.

Działania GitHub

Dostawca kompilacji funkcji GitHub Actions jest dostępny tylko dla źródła usługi GitHub i jest domyślnym rozwiązaniem dla wdrożeń usługi GitHub. Dostawca kompilacji konfiguruje ciągłą integrację/ciągłe wdrażanie, umieszczając plik przepływu pracy funkcji GitHub Actions w repozytorium GitHub, które obsługuje zadania kompilacji i wdrażania usługi App Service.

W przypadku uwierzytelniania podstawowego dostawca kompilacji GitHub Actions dodaje profil publikacji Twojej aplikacji jako tajny wpis w GitHub. Plik przepływu pracy używa tego sekretu do uwierzytelniania w usłudze App Service.

W przypadku tożsamości przypisanej przez użytkownika usługa App Service włącza zalecane uwierzytelnianie microsoft OpenID Connect i konfiguruje niezbędne zasoby na platformie Azure i w usłudze GitHub. Aby uzyskać więcej informacji, zobacz Co robi opcja tożsamości przypisanej przez użytkownika dla funkcji GitHub Actions?

Dostawca usługi GitHub Actions przechwytuje informacje z dzienników uruchamiania przepływu pracy i wyświetla je na karcie Dzienniki w Centrum wdrażania aplikacji.

Dostawcę buildów GitHub Actions można dostosować na kilka sposobów:

  • Dostosuj plik przepływu pracy po jego wygenerowaniu w repozytorium GitHub. Aby uzyskać więcej informacji, zobacz Składnia przepływu pracy dla funkcji GitHub Actions. Wdróż dostosowany przepływ pracy w usłudze App Service za pomocą akcji azure/webapps-deploy.
  • Jeśli wybrana gałąź jest chroniona, wyświetl podgląd pliku przepływu pracy bez zapisywania konfiguracji. Dostosuj plik, a następnie ręcznie dodaj go do repozytorium. Ta metoda nie zapewnia integracji dziennika z witryną Azure Portal.
  • Wdrażaj korzystając z podmiotu usługi Microsoft Entra ID zamiast używać uwierzytelniania podstawowego lub tożsamości przypisanej przez użytkownika. Nie można skonfigurować tej metody w portalu.

Usługa kompilacji App Service

Usługa kompilacji App Service jest natywnym silnikiem wdrażania i kompilacji dla usługi App Service. Po wybraniu tej opcji, App Service dodaje webhook do autoryzowanego repozytorium. Każde przesłanie kodu do repozytorium wyzwala webhook, a usługa App Service pobiera zmiany i realizuje proces wdrażania. Aby uzyskać więcej informacji, zobacz Wdrażanie z usługi GitHub (Kudu).

Usługa kompilacji usługi App Service wymaga podstawowego uwierzytelniania menedżera kontroli źródła (SCM), aby element webhook działał. Uwierzytelnianie podstawowe jest mniej bezpieczne niż inne metody uwierzytelniania. Aby uzyskać więcej informacji, zobacz:

Azure Pipelines (narzędzie do automatyzacji procesów w chmurze Azure)

Usługa Azure Pipelines to składnik kompilacji usługi Azure DevOps. Można skonfigurować ciąg do kompilowania, testowania i wdrażania aplikacji na platformie App Service z dowolnego obsługiwanego repozytorium źródłowego.

Aby użyć usługi Azure Pipelines jako dostawcy kompilacji, wybierz opcję Azure Pipelines w Centrum wdrażania usługi App Service, a następnie przejdź bezpośrednio do Azure DevOps, aby skonfigurować potok. Aby uzyskać więcej informacji, zobacz Wdrażanie w usłudze App Service przy użyciu usługi Azure Pipelines.

Często zadawane pytania

Jak działa dostawca kompilacji funkcji GitHub Actions, jeśli uwierzytelnianie podstawowe jest wyłączone?

Dostawca kompilacji funkcji GitHub Actions nie działa z uwierzytelnianiem podstawowym, jeśli uwierzytelnianie podstawowe jest wyłączone. Zamiast tego spróbuj użyć funkcji GitHub Actions z opcją tożsamości przypisanej przez użytkownika. Aby uzyskać więcej informacji, zobacz Wdrażanie bez uwierzytelniania podstawowego.

Co się stanie z moją aplikacją podczas wdrażania, która może spowodować awarię lub nieprzewidywalne zachowanie?

Oficjalnie obsługiwane metody wdrażania wprowadzają zmiany w plikach w folderze /home/site/wwwroot , które są używane do uruchamiania aplikacji. Wdrożenie może zakończyć się niepowodzeniem z powodu zablokowanych plików. Aplikacja może również zachowywać się nieprzewidywalnie podczas wdrażania, jeśli pliki nie są aktualizowane w tym samym czasie, co jest niepożądane dla aplikacji dostępnej dla klienta.

Istnieje kilka sposobów, aby uniknąć tych problemów.

Co robi opcja tożsamości przypisanej przez użytkownika dla funkcji GitHub Actions?

Po wybraniu tożsamości przypisanej przez użytkownika dla źródła usługi GitHub usługa App Service konfiguruje wszystkie niezbędne zasoby na platformie Azure i w usłudze GitHub. Usługa App Service umożliwia zalecane uwierzytelnianie Microsoft OpenID Connect za pomocą GitHub Actions.

W szczególności usługa App Service wykonuje następujące operacje:

  • Tworzy poświadczenie federacyjne między tożsamością zarządzaną przypisaną przez użytkownika na platformie Azure a wybranym repozytorium i gałęzią w usłudze GitHub.
  • Tworzy tajne AZURE_CLIENT_ID, AZURE_TENANT_ID i AZURE_SUBSCRIPTION_ID z poświadczeń federacyjnych w wybranym repozytorium GitHub.
  • Przypisuje tożsamość Twojej aplikacji.

Następnie możesz użyć Azure/login akcji w przepływie pracy GitHub Actions w repozytorium GitHub, aby uwierzytelnić swoją aplikację za pomocą OpenID Connect. Aby zapoznać się z przykładami, zobacz Dodawanie pliku przepływu pracy do repozytorium GitHub.

Jeśli twoje konto platformy Azure ma wymagane uprawnienia, usługa App Service tworzy tożsamość zarządzaną przypisaną przez użytkownika i konfiguruje ją dla Ciebie. Ta tożsamość nie jest wyświetlana na stronie Tożsamość aplikacji. Jeśli twoje konto platformy Azure nie ma wymaganych uprawnień, musisz wybrać istniejącą tożsamość z wymaganą rolą.

Dlaczego widzę błąd "Nie masz wystarczających uprawnień do tej aplikacji, aby przypisać dostęp oparty na rolach do tożsamości zarządzanej i skonfigurować poświadczenia federacyjne"?

Komunikat wskazuje, że Twoje konto platformy Azure nie ma wymaganych uprawnień do utworzenia tożsamości zarządzanej przypisanej przez użytkownika dla funkcji GitHub Actions. Potrzebujesz następujących uprawnień, przypisanych do Twojej aplikacji:

  • Microsoft.Authorization/roleAssignments/write
  • Microsoft.ManagedIdentity/userAssignedIdentities/write

Domyślnie role Administrator dostępu użytkowników i Właściciel platformy Azure mają te uprawnienia, ale rola Współautor nie. Jeśli nie masz wymaganych uprawnień, skontaktuj się z administratorem platformy Azure, aby utworzyć tożsamość zarządzaną przypisaną przez użytkownika z rolą Współautor witryn internetowych . Następnie możesz wybrać tę tożsamość na liście rozwijanej Tożsamość dla źródła GitHub w Centrum wdrażania usługi App Service.

Aby uzyskać więcej informacji na temat używania alternatywnych kroków, zobacz Wdrażanie w usłudze App Service przy użyciu funkcji GitHub Actions.

Dlaczego widzę błąd "Tożsamość ta nie ma uprawnień do zapisu w tej aplikacji?" Proszę wybrać inną tożsamość lub skontaktować się z administratorem, aby przypisał rolę współautora witryny Twojej tożsamości w tej aplikacji.

Komunikat wskazuje, że wybrana tożsamość zarządzana przypisana przez użytkownika nie ma wymaganej roli [enable OpenID Connect]((#what-does-the-user-assigned-identity-option-do-for-github-actions) między repozytorium GitHub i aplikacją usługi App Service. Tożsamość musi mieć rolę Właściciel, Współtwórca lub Współtwórca witryn internetowych w aplikacji. Najmniej uprzywilejowaną rolą, która wymaga tożsamości, jest Współautor witryn sieci Web.