Migrowanie z Functions on Azure Container Apps V1 do Functions on Azure Container Apps V2

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.Web dostawca 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) z kind=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

  1. Zidentyfikowaj, czy Twoje obecne wdrożenie to aplikacja Functions on Azure Container Apps V1.
  2. Eksportuj wszystkie dane konfiguracji, w tym zmienne środowiskowe, wpisy tajne, parametry połączenia i powiązania niestandardowe.
  3. Przejrzyj przydziały środowiska (CPU, pamięć, maksymalne instancje) i dostosuj je w razie potrzeby.
  4. Potwierdź dostępność obrazu w rejestrze.

2. Utwórz aplikację Functions on Azure Container Apps V2

  1. Tworzenie lub ponowne używanie środowiska usługi Azure Container Apps.

  2. 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>
    
  3. Ponownie zastosuj szczegóły konfiguracji, w tym dane poufne, zmienne środowiskowe, tożsamość, konfigurację sieci.

  4. W razie potrzeby włącz uwierzytelnianie lub domenę niestandardową.

  5. Zdefiniuj zasady skalowania (HTTP, CPU, korelację wyzwalacza kolejki, odpowiednio).

3. Sprawdź poprawność

  1. Wywoływanie funkcji wyzwalanych przez protokół HTTP (curl lub przeglądarka).

  2. Przetestuj każdy typ wyzwalacza (Event Hubs, Service Bus, timer).

  3. Potwierdź dane telemetryczne usługi Application Insights i dzienniki usługi Log Analytics.

  4. Sprawdź zachowanie skalowania pod obciążeniem (wyzwalanie reguł automatycznego skalowania).

  5. Sprawdź, czy wpisy tajne i parametry połączenia są prawidłowo rozpoznawane.

  6. Potwierdź stan sondy kondycji i szczegóły poprawek kontenera.

4. Aktualizowanie domen DNS lub domen niestandardowych (opcjonalnie)

  1. Jeśli używasz niestandardowej domeny, skieruj ją na nową nazwę hosta usługi Functions on Azure Container Apps V2 (CNAME lub rekord A).

  2. Powiąż ponownie certyfikaty SSL/TLS (zarządzane lub przesyłane).

  3. Przetestuj rozpoznawanie domen i nawiązywanie połączenia TLS.

  4. Komunikuj zmiany punktu końcowego wewnętrznie.

5. Migrowanie

  1. Przenoszenie ruchu produkcyjnego (aktualizowanie czasu wygaśnięcia systemu DNS lub reguł routingu).

  2. Monitorowanie opóźnień, błędów i liczby wywołań.

  3. Dostosuj parametry skalowania w razie potrzeby (okres odnowienia, minimalna/maksymalna liczba instancji).

  4. Monitoruj dzienniki pod kątem anomalii przez pierwsze kilka godzin.

6. Czyszczenie

  1. 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.

  2. Usuń nieużywane tajne dane lub odwołania do magazynu danych.

  3. 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: