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.
Skorzystaj z tego przewodnika, aby przejść z modelu hostingu legacy Functions on Azure Container Apps V1 do zalecanego modelu hostingu Functions on Azure Container Apps V2. Dowiesz się, dlaczego przeprowadzić migrację, jakie zmiany i jak wykonać przejście przy minimalnym ryzyku.
Uwaga / Notatka
Użyj asystenta migracji Azure Functions w Azure Container Apps v1, aby pomóc w migracji aplikacji funkcyjnych z modelu v1 do modelu v2.
Usługę Azure Functions można hostować w usłudze Azure Container Apps przy użyciu dwóch modeli wdrażania:
Functions on Azure Container Apps V1: Starszy model proxy, który używa aplikacji funkcji (
Microsoft.Webdostawca zasobów) oraz działającej w tle aplikacji kontenerowej.Functions on Azure Container Apps V2: Model natywny, który tworzy pojedynczy zasób Azure Container App (
Microsoft.App) zkind=functionapp.
Przechodząc do Functions w Azure Container Apps V2, upraszczasz zarządzanie, odblokowujesz natywne funkcje i dostosowujesz się do przyszłej mapy rozwoju Azure Functions.
Porównanie modeli
| Area | Usługa Functions w usłudze Azure Container Apps V1 (starsza wersja) | Funkcje w Azure Container Apps V2 (zalecane) |
|---|---|---|
| Model zasobów | Aplikacja usługi Proxy Functions sparowana z ukrytą aplikacją kontenera | Pojedyncza aplikacja natywnego kontenera (kind=functionapp) |
| Funkcje natywne (poprawki, wpisy tajne, sondy kondycji, domeny niestandardowe, przyczepki) |
Niewspierane | Wsparte |
| Kontrolki skalowania (czas oczekiwania, interwał odpytywania) |
Limited | Opcje skalowania pełnej aplikacji kontenera |
| Rejestrowanie i rozwiązywanie problemów | Pośredni. Brak aktywnej konsoli | Bezpośredni. Obejmuje dzienniki na żywo i diagnostykę |
| Integracja Dapr | Problematyczne w pewnych izolowanych scenariuszach .NET | Obsługiwane za pomocą wzorców standardowych |
| Auth (Łatwa Autoryzacja) | Niedostępne | Dostępny |
| Certyfikaty i domeny niestandardowe | Niedostępne | Dostępny |
| Metryki i powiadamianie | Basic | Pełne natywne metryki i alerty |
| Harmonogram działania w przyszłości (lista funkcji, klucze, liczba wywołań) |
Nieplanowane | Planowane |
| Złożoność operacyjna | Zarządzanie podwójnymi zasobami | Pojedynczy zasób |
| Zalecane w przypadku nowych wdrożeń | Nie. | Tak |
Ograniczenia usługi Functions w usłudze Azure Container Apps V1
Funkcje w Azure Container Apps V1 mają kilka ograniczeń wpływających na skalowalność, zarządzanie oraz dostępność funkcji. Zrozumienie tych ograniczeń pomaga wyjaśnić korzyści płynące z migracji do Functions w Azure Container Apps V2.
Braki w funkcjach
Poniższe funkcje nie są dostępne dla Functions w aplikacjach Azure Container Apps V1:
- Łatwe uwierzytelnianie
- Sondy kondycji
- Domeny niestandardowe
- Kontenery przyczepki
- Certyfikaty zarządzane
- Sekrety aplikacji kontenera
- Granularne ustawienia skalowania
- Dzielenie ruchu wielorewizjowe
Rozwiązywanie problemów z ograniczeniami
W przypadku aplikacji Functions działających w usłudze Azure Container Apps V1 nie masz bezpośredniego dostępu do kontenera ani podglądu danych wyjściowych konsoli w czasie rzeczywistym. Zamiast tego użyj Log Analytics do diagnostyki infrastruktury oraz Application Insights do logów aplikacji.
Problemy z integracją Dapr
Funkcje izolowane Dapr i .NET mogą powodować konflikt podczas kompilacji lub działania środowiska uruchomieniowego z powodu ograniczeń dotyczących kolejności zależności i inicjalizacji.
Korzyści z Azure Functions na platformie Azure Container Apps V2
Functions on Azure Container Apps V2 tworzy bezpośrednio natywny zasób aplikacji kontenerowej. Takie podejście usuwa pośrednictwo serwera proxy i umożliwia korzystanie z pełnych funkcji usługi Azure Container Apps.
Kluczowe korzyści:
- Włącz funkcję Easy Auth na potrzeby odciążania tożsamości.
- Skonfiguruj sondy kondycji, aby zwiększyć odporność.
- Ustawianie domen niestandardowych i używanie certyfikatów zarządzanych.
- Zmniejsz nakład pracy operacyjnej przy użyciu jednego zasobu.
- Przechowywanie tajnych danych natywnie i montowanie kontenerów sidecar.
- Zyskaj zrozumialsze metryki, alerty i strumieniowe przesyłanie dzienników na żywo.
- Używaj wdrożeń z wieloma rewizjami i bezpiecznie podzielaj ruch sieciowy.
- Stosowanie reguł szczegółowego skalowania (interwał sondowania, czas wyciszenia).
Uwaga / Notatka
Nie są wymagane żadne zmiany kodu. Możesz ponownie użyć istniejącego obrazu kontenera.
Starsze wdrożenie obrazu bezpośredniego (nieobsługiwane)
Niektóre wdrożenia używają standardowej aplikacji kontenera bez kind=functionapp, a obraz usługi Functions uruchamiają ręcznie.
Ważne
Takie podejście nie jest wspierane. Brakuje automatycznych reguł skalowania i nie otrzymuje nadchodzących funkcji na platformie Azure Container Apps V2, takich jak lista funkcji, klucze i liczba wywołań.
Rekomendacja: Przejdź na Functions on Azure Container Apps V2.
Wymagania wstępne
Przed migracją:
- Subskrypcja platformy Azure i uprawnienia do tworzenia zasobów.
- [Interfejs wiersza polecenia platformy Azure](/cli/azure/install-azure-cli-windows?view=azure-cli-latest) (najnowsza wersja) jest zainstalowany.
- Wymagane rozszerzenia:
az extension add --name containerapp,az extension add --name functionapp(jeśli dotyczy). - Dostęp do obrazu kontenera używanego przez funkcje w ramach wdrożenia Azure Container Apps V1.
- Spis zmiennych środowiskowych, sekretów, powiązań pamięci masowej i ustawień sieciowych.
Procedura migracji
1. Przygotowanie
- Zidentyfikowaj, czy Twoje obecne wdrożenie to aplikacja Functions on Azure Container Apps V1.
- Eksportuj wszystkie dane konfiguracji, w tym zmienne środowiskowe, wpisy tajne, parametry połączenia i powiązania niestandardowe.
- Przejrzyj przydziały środowiska (CPU, pamięć, maksymalne instancje) i dostosuj je w razie potrzeby.
- Potwierdź dostępność obrazu w rejestrze.
2. Utwórz aplikację Functions on Azure Container Apps V2
Tworzenie lub ponowne używanie środowiska usługi Azure Container Apps.
Wdróż nową aplikację Functions on Azure Container Apps V2 przy użyciu tego samego obrazu.
az containerapp create \ --name my-func-v2 \ --resource-group <RESOURCE_GROUP_NAME> \ --environment <ENVRONMENT_NAME> \ --image myregistry.azurecr.io/<IMAGE_NAME>:<TAG_NAME> \ --kind functionapp \ --ingress external --target-port <TARGET_PORT>Ponownie zastosuj szczegóły konfiguracji, w tym dane poufne, zmienne środowiskowe, tożsamość, konfigurację sieci.
W razie potrzeby włącz uwierzytelnianie lub domenę niestandardową.
Zdefiniuj zasady skalowania (HTTP, CPU, korelację wyzwalacza kolejki, odpowiednio).
3. Sprawdź poprawność
Wywoływanie funkcji wyzwalanych przez protokół HTTP (curl lub przeglądarka).
Przetestuj każdy typ wyzwalacza (Event Hubs, Service Bus, timer).
Potwierdź dane telemetryczne usługi Application Insights i dzienniki usługi Log Analytics.
Sprawdź zachowanie skalowania pod obciążeniem (wyzwalanie reguł automatycznego skalowania).
Sprawdź, czy wpisy tajne i parametry połączenia są prawidłowo rozpoznawane.
Potwierdź stan sondy kondycji i szczegóły poprawek kontenera.
4. Aktualizowanie domen DNS lub domen niestandardowych (opcjonalnie)
Jeśli używasz niestandardowej domeny, skieruj ją na nową nazwę hosta usługi Functions on Azure Container Apps V2 (CNAME lub rekord A).
Powiąż ponownie certyfikaty SSL/TLS (zarządzane lub przesyłane).
Przetestuj rozpoznawanie domen i nawiązywanie połączenia TLS.
Komunikuj zmiany punktu końcowego wewnętrznie.
5. Migrowanie
Przenoszenie ruchu produkcyjnego (aktualizowanie czasu wygaśnięcia systemu DNS lub reguł routingu).
Monitorowanie opóźnień, błędów i liczby wywołań.
Dostosuj parametry skalowania w razie potrzeby (okres odnowienia, minimalna/maksymalna liczba instancji).
Monitoruj dzienniki pod kątem anomalii przez pierwsze kilka godzin.
6. Czyszczenie
Wycofaj starą aplikację Functions on Azure Container Apps V1 oraz powiązane zasoby.
Ostrzeżenie
Sprawdź, czy żaden ruch produkcyjny nie jest nadal kierowany do punktu końcowego Functions on Azure Container Apps V1 przed jego usunięciem.
Usuń nieużywane tajne dane lub odwołania do magazynu danych.
Zaktualizować wewnętrzną dokumentację i runbooki operacyjne.
Lista kontrolna weryfikacji poprawności
| Produkt | Kryteria zaliczenia |
|---|---|
| Wyzwalacze aktywują się | Wszystkie skonfigurowane wyzwalacze są wykonywane pomyślnie |
| Dzienniki i dane telemetryczne | Usługa Application Insights wyświetla wywołania; strumień dzienników na żywo |
| Scaling | Liczba wystąpień dostosowuje się do konfiguracji reguły |
| Uwierzytelnianie (jeśli jest włączone) | Chronione punkty końcowe zwracają oczekiwane kody stanu |
| Domeny | Domena niestandardowa rozwiązuje się z prawidłowym certyfikatem |
| Tajemnice | Ładowanie wartości poufnych bez błędów |
Ulepszenia operacyjne (opcjonalnie)
Zwiększ niezawodność po migracji:
- Dodawanie reguł alertów
- Dostosowanie automatycznego skalowania
- Wymuszanie użycia tożsamości zarządzanej
- Scentralizowanie tajnych danych