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

usługa aplikacja systemu Azure umożliwia ciągłe wdrażanie z repozytoriów GitHub, Bitbucket i Azure Repos, pobierając najnowsze aktualizacje.

Przygotowywanie repozytorium

Aby uzyskać automatyczne kompilacje z serwera kompilacji usługi aplikacja systemu Azure 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, *.csproj lub 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
Python *.py, requirements.txt lub 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 zadań WebJob lub App_Data/jobs/triggered wyzwalanych zadań WebJob. 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 plik wdrożenia do katalogu głównego repozytorium. Aby uzyskać więcej informacji, zobacz Dostosowywanie wdrożeń i niestandardowego skryptu wdrażania.

Uwaga

Jeśli używasz programu Visual Studio, pozwól programowi 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 witrynie Azure Portal przejdź do strony zarządzania dla aplikacji usługi App Service.

  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ągłej integracji/ciągłego wdrażania:

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

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

  1. Funkcja GitHub Actions jest domyślnym dostawcą kompilacji. Aby zmienić dostawcę, wybierz pozycję Zmień dostawcę>Usługi kompilacji usługi>App Service OK.

  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 autoryzaniu konta platformy Azure za pomocą usługi GitHub wybierz odpowiednią organizację, repozytorium i gałąź.

    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.

  4. W obszarze Typ uwierzytelniania wybierz pozycję Tożsamość przypisana przez użytkownika, aby uzyskać lepsze zabezpieczenia. Aby uzyskać więcej informacji, zobacz często zadawane pytania.

    Uwaga

    Jeśli Twoje konto platformy Azure ma wymagane uprawnienia do opcji tożsamości przypisanej przez użytkownika, platforma Azure utworzy tożsamość zarządzaną przypisaną przez użytkownika. Jeśli tego nie zrobisz, skontaktuj się z administratorem platformy Azure, aby utworzyć tożsamość z wymaganą rolą w aplikacji, a następnie wybierz ją tutaj na liście rozwijanej.

  5. (Opcjonalnie) Aby wyświetlić plik przed zapisaniem zmian, wybierz pozycję Plik podglądu. Usługa App Service wybiera szablon przepływu pracy na podstawie ustawienia stosu języka aplikacji i zatwierdza go w wybranym repozytorium GitHub.

  6. 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. Zatwierdzenia i wdrożenia można śledzić na karcie Dzienniki .

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

  1. W witrynie Azure Portal przejdź do strony zarządzania dla aplikacji usługi App Service.

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

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

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

  4. Wybierz przycisk OK.

Co to są dostawcy kompilacji?

W zależności od źródła wdrożenia w Centrum wdrażania może zostać wyświetlonych kilka opcji wyboru dla dostawców kompilacji. Dostawcy kompilacji ułatwiają tworzenie rozwiązania ciągłej integracji/ciągłego wdrażania za pomocą usługi aplikacja systemu Azure, automatyzując kompilację, testowanie i wdrażanie.

Nie ograniczasz się do opcji dostawcy kompilacji dostępnych w Centrum wdrażania, ale usługa App Service umożliwia ich szybkie konfigurowanie i oferuje zintegrowane środowisko rejestrowania wdrożeń.

Dostawca kompilacji funkcji GitHub Actions jest dostępny tylko dla wdrożenia usługi GitHub. Po skonfigurowaniu z Centrum wdrażania aplikacji wykonuje te akcje w celu skonfigurowania ciągłej integracji/ciągłego wdrażania:

  • Umieszcza plik przepływu pracy funkcji GitHub Actions w repozytorium GitHub w celu obsługi zadań kompilacji i wdrażania w usłudze App Service.
  • W przypadku uwierzytelniania podstawowego dodaje profil publikowania dla aplikacji jako wpis tajny usługi GitHub. Plik przepływu pracy używa tego wpisu tajnego do uwierzytelniania w usłudze App Service.
  • W przypadku tożsamości przypisanej przez użytkownika zobacz Co robi opcja tożsamości przypisanej przez użytkownika dla funkcji GitHub Actions?
  • Przechwytuje informacje z dzienników uruchamiania przepływu pracy i wyświetla je na karcie Dzienniki w Centrum wdrażania.

Możesz dostosować dostawcę kompilacji funkcji GitHub Actions na następujące sposoby:

  • 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. Upewnij się, że przepływ pracy jest wdrażany w usłudze App Service za pomocą 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 zapewnia integracji dziennika z witryną Azure Portal.
  • Zamiast korzystać z uwierzytelniania podstawowego lub tożsamości przypisanej przez użytkownika, można również wdrożyć przy użyciu jednostki usługi w usłudze Microsoft Entra ID. Nie można tego skonfigurować w portalu.

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

Wszystkie oficjalnie obsługiwane metody wdrażania powodują wprowadzenie zmian w plikach znajdujących się w folderze /home/site/wwwroot aplikacji. Te pliki są używane do uruchamiania aplikacji. Dlatego wdrożenie może się zakończyć niepowodzeniem z powodu zablokowanych plików. Aplikacja może także działać w sposób nieprzewidywalny w trakcie wdrażania, ponieważ nie wszystkie pliki są aktualizowane jednocześnie. Takie działanie jest niepożądane w przypadku aplikacji przeznaczonych dla klientów. Istnieje kilka sposobów uniknięcia tych problemów:

Często zadawane pytania

Czy dostawca kompilacji funkcji GitHub Actions współpracuje z uwierzytelnianiem podstawowym, jeśli uwierzytelnianie podstawowe jest wyłączone?

L.p. 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 robi opcja tożsamości przypisanej przez użytkownika dla funkcji GitHub Actions?

Po wybraniu tożsamości przypisanej przez użytkownika w źródle funkcji GitHub Actions usługa App Service konfiguruje wszystkie niezbędne zasoby na platformie Azure i w usłudze GitHub w celu włączenia zalecanego uwierzytelniania openID Połączenie za pomocą funkcji 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 wpisy AZURE_CLIENT_IDtajne , AZURE_TENANT_IDi AZURE_SUBSCRIPTION_ID z poświadczeń federacyjnych w wybranym repozytorium GitHub.
  • Przypisuje tożsamość do aplikacji.

W przepływie pracy funkcji GitHub Actions w repozytorium GitHub możesz następnie użyć akcji Azure/login do uwierzytelniania w aplikacji przy użyciu Połączenie OpenID. 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ści 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 przypisywania dostępu opartego na rolach do tożsamości zarządzanej i konfigurowania poświadczeń federacyjnych"?

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. Wymagane uprawnienia (w zakresie aplikacji):

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

Domyślnie rola Administracja istratora dostępu użytkowników i rola Właściciel mają już 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 witryny internetowej. W Centrum wdrażania możesz wybrać tożsamość z listy rozwijanej Tożsamość usługi GitHub>.

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

Dlaczego widzę błąd "Ta tożsamość nie ma uprawnień do zapisu w tej aplikacji. Wybierz inną tożsamość lub współpracuj z administratorem, aby udzielić roli Współautor witryny internetowej tożsamości w tej aplikacji??

Komunikat wskazuje, że wybrana tożsamość zarządzana przypisana przez użytkownika nie ma wymaganej roli, aby włączyć Połączenie OpenID między repozytorium GitHub i aplikacją usługi App Service. Tożsamość musi mieć jedną z następujących ról w aplikacji: Właściciel, Współautor, Współautor witryny sieci Web. Najmniej uprzywilejowaną rolą, która wymaga tożsamości, jest Współautor witryn sieci Web.

Więcej zasobów