Ciągłe wdrażanie do usługi Azure App Service
Uwaga
Od 1 czerwca 2024 r. wszystkie nowo utworzone aplikacje usługi App Service będą miały możliwość wygenerowania unikatowej domyślnej nazwy hosta przy użyciu konwencji <app-name>-<random-hash>.<region>.azurewebsites.net
nazewnictwa . Istniejące nazwy aplikacji pozostaną niezmienione.
Przykład: myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Aby uzyskać więcej informacji, zapoznaj się z unikatową domyślną nazwą hosta zasobu usługi 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.js lub package.json za pomocą skryptu startowego |
Python | *.py , requirements.txt lub runtime.txt |
HTML | default.htm , , default.html , default.asp , index.htm , index.html lub 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
W witrynie Azure Portal przejdź do strony zarządzania dla aplikacji usługi App Service.
W okienku po lewej stronie wybierz pozycję Centrum wdrażania. Następnie wybierz pozycję Ustawienia.
W polu Źródło wybierz jedną z opcji ciągłej integracji/ciągłego wdrażania:
Wybierz kartę odpowiadającą dostawcy kompilacji, aby kontynuować.
Funkcja GitHub Actions jest domyślnym dostawcą kompilacji. Aby zmienić dostawcę, wybierz pozycję Zmień dostawcę>Usługi kompilacji usługi>App Service OK.
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.
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.
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.
(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.
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
W witrynie Azure Portal przejdź do strony zarządzania dla aplikacji usługi App Service.
W okienku po lewej stronie wybierz pozycję Centrum wdrażania. Następnie wybierz pozycję Ustawienia>Rozłącz:
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.
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:
- Uruchom aplikację bezpośrednio z pakietu ZIP, bez rozpakowywania.
- Zatrzymaj aplikację lub udostępnij tryb offline na czas wdrażania. Aby uzyskać więcej informacji, zobacz Radzenie sobie z zablokowanymi plikami podczas wdrażania.
- Wdróż aplikację w miejscu przejściowym z włączoną funkcją automatycznej zamiany.
Często zadawane pytania
- Czy dostawca kompilacji funkcji GitHub Actions współpracuje z uwierzytelnianiem podstawowym, jeśli uwierzytelnianie podstawowe jest wyłączone?
- Co robi opcja tożsamości przypisanej przez użytkownika dla 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??
- 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??
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 Connect 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_ID
tajne ,AZURE_TENANT_ID
iAZURE_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 narzędzia 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ś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 administrator 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 do włączenia funkcji OpenID Connect 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.