Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure Functions umożliwia ciągłe wdrażanie zmian z repozytorium kontroli wersji do aplikacji Function. W tym workflow aktualizacja kodu uruchamia build, pakowanie i wdrożenie z Twojego projektu do Azure. Wspierani dostawcy wdrożeń i strategie wydania zależą od planu hostingu.
| Plan hostingu | Zalecany lekarz CI/CD | Wytyczne dotyczące rozmieszczenia i wydawania |
|---|---|---|
| Zużycie elastyczne | GitHub Actions lub Azure Pipelines | Wykorzystuje wdrażanie pakietów. Sloty na wdrożenie nie są obsługiwane. Korzystaj z kontroli wydawnictwa CI/CD i rozważ aktualizacje ciągłe dla wdrożeń bez przestojów. |
| Elastic Premium, Dedykowane i Zużycie | GitHub Actions lub Azure Pipelines | Wykorzystuje wdrażanie ZIP. Gdy aplikacja to wspiera, wdroż do slotu stagingowego, zweryfikuj aktualizację, a następnie przełącz ten slot do produkcji. |
| Azure Container Apps | Workflow budowy i wdrażania kontenerów | Wdraża obraz kontenera. Aby uzyskać więcej informacji, zobacz Omówienie usługi Azure Functions w usłudze Azure Container Apps. |
Wybierz swój plan hostingu na górze tego artykułu, aby zobaczyć instrukcje dotyczące ciągłego wdrażania dotyczące Twojej aplikacji funkcjonalnej.
W przypadku planów hostingowych obsługujących sloty wdrożenia, konfiguruj ciągłe wdrażanie dla slotu staging zamiast slotu produkcyjnego. Weryfikuj aktualizacje w stagingu, a następnie przenieś slot stagingu do produkcji. Jeśli łączysz się bezpośrednio z slotem produkcyjnym, upewnij się, że do zintegrowanej gałęzi dociera tylko kod jakości produkcyjnej.
Do Flex Consumption konfiguruj GitHub Actions lub Azure Pipelines. Ponieważ Flex Consumption nie obsługuje slotów wdrożeniowych, zachowaj historię wdrożeń w kontroli wersji oraz system CI/CD, aby móc się odbudować po złym wdrożeniu.
For Functions on Azure Container Apps, build and deploy a container image. Sloty na rozmieszczenie nie są dostępne. Korzystaj z wersji i rozważ strategię wdrożenia niebiesko-zielonej dla wydań bez przestojów.
Kroki Centrum Wdrożeniowego opisane w tym artykule dotyczą aplikacji funkcjonalnych wspierających integrację z kontrolą źródeł App Service. W planie Consumption ta integracja jest obsługiwana tylko na Windows. Możesz także skonfigurować integrację z kontrolą wersji, korzystając z Azure CLI.
Usługa Azure Functions obsługuje te źródła na potrzeby ciągłego wdrażania w aplikacji:
Obsługa kodu projektu w usłudze Azure Repos — jednej z usług w usłudze Azure DevOps. Obsługuje zarówno usługę Git, jak i Kontrola wersji serwera Team Foundation. Używany z dostawcą kompilacji Azure Pipelines. Aby uzyskać więcej informacji, zobacz Co to jest usługa Azure Repos?
Możesz też połączyć aplikację funkcjonalną z zewnętrznym repozytorium Gita, ale ta opcja wymaga ręcznej synchronizacji. Aby uzyskać więcej informacji na temat opcji wdrażania, zobacz Technologie wdrażania w usłudze Azure Functions.
Uwaga
Opcje ciągłego wdrażania omówione w tym artykule są specyficzne dla wdrażania wyłącznie kodu. Za Azure Functions on Azure Container Apps zobacz przegląd Azure Functions on Azure Container Apps. Aby uzyskać niestandardowy kontener hostowany przez Azure Functions w planie Premium lub dedykowanym, zobacz sekcje Włącz ciągłe wdrażanie kontenerów do Azure w Work with containers i Azure Functions.
Flex Consumption obsługuje ciągłe wdrażanie z Azure Repos za pomocą Azure Pipelines oraz z GitHub za pomocą GitHub Actions. Integracja z zarządzaniem wersją App Service, w tym wdrożenia Bitbucket i Local Git, nie jest obsługiwana.
Jeśli chodzi o funkcje na Azure Container Apps, utrzymuj swój kod w preferowanym repozytorium i korzystaj z workflow CI/CD do budowy i wysyłania obrazu kontenera. Następnie zaktualizuj aplikację funkcyjną, żeby używała nowego obrazu. Więcej informacji można znaleźć w artykule Deployment and setup for Functions on Azure Container Apps.
Wymagania
Jednostką wdrożenia funkcji na platformie Azure jest aplikacja funkcji. Aby ciągłe wdrażanie zakończyło się pomyślnie, struktura katalogów projektu musi być zgodna z podstawową strukturą folderów oczekiwaną przez usługę Azure Functions. Gdy tworzysz swój projekt kodu za pomocą Azure Functions Core Tools, Visual Studio Code lub Visual Studio, szablony Azure Functions tworzą projekty kodu z odpowiednią strukturą katalogów. Wszystkie funkcje wdrażasz w aplikacji funkcjonalnej jednocześnie i w tym samym pakiecie.
Po włączeniu ciągłego wdrażania dostęp do kodu funkcji w portalu Azure jest skonfigurowany jako tylko do odczytu, ponieważ źródło prawdy znajduje się gdzie indziej.
Uwaga
Centrum wdrażania nie obsługuje włączania ciągłego wdrażania dla aplikacji funkcji z ograniczeniami sieciowymi dla ruchu przychodzącego. Zamiast tego konfiguruj workflow dostawcy buildów bezpośrednio w GitHub lub Azure Pipelines. Runner lub agent musi być w stanie dotrzeć do punktu wdrożenia aplikacji przy skonfigurowanych ograniczeniach dostępu. Gdy punkt końcowy jest prywatny, runner lub agent również potrzebuje prywatnej rozdzielczości DNS. W przypadku Azure Pipelines używaj agenta hostowanego samodzielnie w sieci połączonej lub zarządzanej puli agentów DevOps z sieciami. W przypadku GitHub Actions użyj samodzielnie hostowanego runnera w połączonej sieci lub runnera hostowanego na GitHub z prywatną siecią Azure.
Gdy Twoja aplikacja funkcyjna ma ograniczenia sieciowe przychodzące, runner workflow lub agent musi być w stanie dotrzeć do punktu wdrożenia aplikacji w ramach skonfigurowanych ograniczeń dostępu. Gdy punkt końcowy jest prywatny, runner lub agent również potrzebuje prywatnej rozdzielczości DNS. W przypadku Azure Pipelines używaj agenta hostowanego samodzielnie w sieci połączonej lub zarządzanej puli agentów DevOps z sieciami. W przypadku GitHub Actions użyj samodzielnie hostowanego runnera w połączonej sieci lub runnera hostowanego na GitHub z prywatną siecią Azure.
Twój workflow CI/CD musi zbudować prawidłowy obraz kontenera Azure Functions, przesłać go do rejestru, do którego ma dostęp aplikacja kontenerowa, oraz zaktualizować aplikację Function, aby stworzyć rewizję na podstawie tego obrazu. Więcej informacji można znaleźć w artykule Create a function app on Azure Container Apps.
Wybieranie dostawcy kompilacji
Kompilowanie projektu kodu jest częścią procesu wdrażania. Konkretny proces kompilacji zależy od konkretnego stosu języka, systemu operacyjnego i planu hostingu. Możesz budować lokalnie lub zdalnie, w zależności od hostingu. Aby uzyskać więcej informacji, zobacz Zdalna kompilacja.
Ważne
Dla zwiększenia bezpieczeństwa korzystaj z dostawcy buildów obsługującego zarządzane tożsamości, takiego jak Azure Pipelines i GitHub Actions. Usługa budowania App Service wymaga włączenia podstawowej uwierzytelniania i używania poświadczeń tekstowych.
Usługa Azure Functions obsługuje następujących dostawców kompilacji:
Usługa Azure Pipelines jest jedną z usług w usłudze Azure DevOps i domyślnym dostawcą kompilacji dla projektów usługi Azure Repos. Usługi Azure Pipelines można również używać do kompilowania projektów z usługi GitHub. W usłudze Azure Pipelines istnieje AzureFunctionApp zadanie przeznaczone specjalnie do wdrażania w usłudze Azure Functions. To zadanie zapewnia kontrolę nad sposobem budowy, pakowania i wdrażania projektu. Usługa Azure Pipelines obsługuje tożsamości zarządzane.
Pamiętaj o mocnych stronach i ograniczeniach tych dostawców podczas włączania integracji z systemem kontroli wersji. Może być konieczne zmianę typu źródła repozytorium w celu skorzystania z określonego dostawcy.
Użyj Azure Pipelines lub GitHub Actions, aby zbudować i wdrożyć swój projekt. Ci dostawcy wspierają tożsamości Microsoft Entra i korzystają z procesu wdrażania pakietu Flex Consumption.
- For Azure Repos użyj Azure Pipelines.
- Dla GitHub użyj GitHub Actions.
Usługa budowania App Service nie dotyczy Flex Consumption.
Użyj dostawcy budowy kontenerów, który może zbudować Twój obraz Azure Functions, przesunąć go do rejestru kontenerów i zaktualizować aplikację Function, aby stworzyć wersję na podstawie nowego obrazu. Aby uzyskać kompleksowy workflow GitHub Actions, zobacz Deploy to Azure Container Apps with GitHub Actions.
Konfigurowanie ciągłego wdrażania
Portal Azure udostępnia Centrum Wdrożenia dla Twoich aplikacji funkcyjnych, co ułatwia konfigurację ciągłego wdrażania. Konkretny sposób konfigurowania ciągłego wdrażania zależy zarówno od typu repozytorium kontroli źródła, w którym znajduje się kod, jak i wybranego dostawcy kompilacji.
W witrynie Azure Portal przejdź do strony aplikacji funkcji i wybierz pozycję Centrum wdrażania w obszarze Wdrażanie w okienku po lewej stronie.
Wybierz typ repozytorium źródłowego, w którym jest obsługiwany kod projektu, z jednej z następujących obsługiwanych opcji:
Definiuj wdrożenia z Azure Repos, które używają Azure Pipelines w portalu Azure DevOps. Nie definiuj tych wdrożeń w aplikacji funkcjonalnej. Aby uzyskać krok po kroku przewodnik po tworzeniu wdrożenia opartego na Azure Pipelines z Azure Repos, zobacz Continuous delivery with Azure Pipelines.
Po zakończeniu wdrożenia usługa wdraża cały kod z określonego źródła do Twojej aplikacji. W tym etapie zmiany w źródle wdrożeniowym wyzwalają wdrożenie tych zmian w aplikacji funkcji w Azure.
Konfiguruj ciągłe wdrażanie w swoim repozytorium, korzystając z jednego z tych dostawców:
Każde udane uruchomienie workflow powoduje wdrożenie nowego pakietu aplikacji. Integracja kontroli źródeł w Deployment Center nie jest dostępna dla Flex Consumption.
Konfiguruj workflow CI/CD, aby zbudować i wypchnąć obraz kontenera, a następnie wdroż go w aplikacji funkcyjnej. Każda aktualizacja obrazu tworzy wersję Container Apps. Więcej informacji można znaleźć w artykule Deploy to Azure Container Apps with GitHub Actions.
Włączanie ciągłego wdrażania podczas tworzenia aplikacji
Gdy tworzysz aplikację funkcjonalną w portalu Azure, możesz skonfigurować ciągłe wdrażanie z GitHub, korzystając z GitHub Actions. Konfiguruj GitHub Actions na zakładce Deployment na stronie Create Function App.
Aby użyć innego źródła wdrożenia lub dostawcy buildów do ciągłej integracji, najpierw stwórz aplikację funkcyjną. Następnie wracaj do portalu i konfiguruj ciągłą integrację w Centrum Wdrożenia.
W przypadku Azure Pipelines najpierw stwórz aplikację funkcyjną, a następnie skonfiguruj pipeline w Azure DevOps.
Stwórz aplikację funkcyjną z obrazu kontenera, a następnie skonfiguruj workflow CI/CD, aby publikować zaktualizowane obrazy i tworzyć wersje. Więcej informacji można znaleźć w artykule Create a function app on Azure Container Apps.
Włączanie uwierzytelniania podstawowego dla wdrożeń
Ta sekcja dotyczy wyłącznie metod wdrożenia wykorzystujących endpoint wdrożenia App Service.
W niektórych przypadkach aplikacja funkcjonalna jest tworzona z wyłączonym dostępem do podstawowego uwierzytelniania do punktu końcowego wdrożenia. Ten warunek blokuje publikowanie wszystkimi metodami, które nie mogą użyć tożsamości Microsoft Entra do dostępu do punktu końcowego wdrożenia. Wpływ publikowania wyłączenia podstawowej uwierzytelniania dla punktu końcowego wdrożenia jest szczegółowo opisany w sekcji Wdrażaj bez podstawowej autoryzacji.
Ważne
W przypadku korzystania z uwierzytelniania podstawowego poświadczenia są wysyłane w postaci zwykłego tekstu. Aby chronić te poświadczenia, należy uzyskać dostęp do punktu końcowego wdrożenia tylko przez zaszyfrowane połączenie (HTTPS) przy użyciu podstawowej uwierzytelniania. Aby uzyskać więcej informacji, zobacz Bezpieczne wdrożenie.
Aby umożliwić podstawowe uwierzytelnianie dla punktu końcowego wdrożenia:
W portalu Azure, przejdź do swojej aplikacji funkcji.
W menu po lewej stronie aplikacji wybierz pozycję Ustawienia>Ustawienia>Ogólne ustawienia.
Ustaw Poświadczenia publikowania uwierzytelniania podstawowego SCM na Włączone, a następnie wybierz Zapisz.
Podstawowe uwierzytelnianie SCM nie dotyczy wdrożeń pakietów Flex Consumption. Domyślnie Azure Pipelines używa tokena nośnika Microsoft Entra z wymaganego połączenia usług Azure; zalecana jest federacja tożsamości obciążenia. Dla GitHub Actions użyj zalecanej autologacji OpenID Connect (OIDC). Metody te unikają publikowania danych SCM i są bezpieczniejsze niż podstawowa autoryzacja.
To podstawowe ustawienie uwierzytelniania nie dotyczy funkcji w Azure Container Apps. Zamiast tego skonfiguruj uwierzytelnianie między dostawcą CI/CD, rejestrem kontenerów i aplikacją kontenerową.