Migration von Functions on Azure Container Apps v1 zu Functions on Azure Container Apps V2

Nutzen Sie diesen Leitfaden, um vom alten Functions on Azure Container Apps V1 Hosting-Modell zum empfohlenen Functions on Azure Container Apps V2 Hosting-Modell zu wechseln. Sie erfahren, warum Sie migrieren, welche Änderungen vorgenommen werden und wie Sie den Übergang mit minimalem Risiko ausführen.

Hinweis

Nutzen Sie den Azure Functions on Azure Container Apps v1 Migration Assistant, um Ihre Funktions-Apps vom v1-Modell auf das v2-Modell zu migrieren.

Sie können Azure Functions in Azure Container-Apps hosten, indem Sie zwei Bereitstellungsmodelle verwenden:

  • Funktionen auf Azure Container Apps V1: Altes Proxy-Modell, das eine Function App (Microsoft.WebResource Provider) plus eine Container-App im Hintergrund verwendet.

  • Funktionen auf Azure Container Apps V2: Natives Modell, das eine einzelne Azure Container App Resource (Microsoft.App) mit kind=functionapperstellt.

Wenn Sie zu Functions in Azure Container Apps V2 wechseln, vereinfachen Sie das Management, schalten native Funktionen frei und richten sich an die zukünftige Roadmap von Azure Functions.

Modellvergleich

Area Functions bei Azure Container Apps V1 (veraltet) Funktionen auf Azure Container Apps V2 (empfohlen)
Ressourcenmodell Proxy-Funktionen-App in Kombination mit einer verborgenen Container-App Einzelne native Container-App (kind=functionapp)
Systemeigene Features

(Überarbeitungen, Geheimnisse, Integritätstests, benutzerdefinierte Domänen, Sidecars)
Nicht unterstützt Unterstützt
Skalierungssteuerung

(Abkühlzeit, Abfrageintervall)
Begrenzt Vollständige Skalierungsoptionen für Container-Apps
Protokollierung und Problembehandlung Indirekt. Keine Livekonsole Direkt. Umfasst Liveprotokolle und Diagnosen
Dapr-Integration Problematisch in einigen isolierten .NET-Szenarien Unterstützt durch Standardmuster
Authentifizierung (Easy Auth) Nicht verfügbar Verfügbar
Zertifikate und benutzerdefinierte Domänen Nicht verfügbar Verfügbar
Metriken und Warnungen Basic Vollständige systemeigene Metriken und Warnungen
Zukunftsplanung

(Funktionsauflistung, Schlüssel, Aufrufanzahl)
Nicht geplant Geplant
Komplexität des Betriebs Duale Ressourcenverwaltung Einzelne Ressource
Empfohlen für neue Bereitstellungen Nein Yes

Einschränkungen der Funktionen auf Azure Container Apps v1

Funktionen in Azure Container Apps V1 haben mehrere Einschränkungen, die Skalierbarkeit, Verwaltung und Funktionsverfügbarkeit beeinflussen. Das Verständnis dieser Einschränkungen hilft, die Vorteile der Migration zu Functions in Azure Container Apps V2 zu verdeutlichen.

Funktionslücken

Die folgenden Funktionen sind für Functions in Azure Container Apps V1 Apps nicht verfügbar:

  • Einfache Authentifizierung
  • Gesundheitsprüfungen
  • Benutzerdefinierte Domänen
  • Sidecar-Container
  • Verwaltete Zertifikate
  • Geheimnisse der Container-App
  • Granulare Skalierungseinstellungen
  • Trennung von Datenverkehr bei mehreren Revisionen

Problembehandlung bei Einschränkungen

Mit Functions auf Azure Container Apps V1 Apps hast du keinen direkten Containerzugriff oder Echtzeit-Konsolenausgabe. Verwenden Sie stattdessen Log Analytics für Infrastruktur-Diagnosen und Application Insights für Anwendungsprotokolle.

Probleme bei der Integration von Dapr

Dapr und isolierte .NET-Funktionen können während der Build- oder Laufzeit aufgrund von Abhängigkeits- und Initialisierungsreihenfolgenbeschränkungen in Konflikt geraten.

Vorteile von Funktionen in Azure Container Apps V2

Functions on Azure Container Apps V2 erstellt direkt eine native Container-App-Ressource. Dieser Ansatz entfernt die Proxy-Dereferenzierung und ermöglicht vollständige Azure-Container-Apps-Funktionen.

Hauptvorteile:

  • Aktivieren Sie die einfache Authentifizierung für das Ausladen von Identitäten.
  • Konfigurieren Sie Gesundheitsüberprüfungen, um die Resilienz zu verbessern.
  • Legen Sie benutzerdefinierte Domänen fest, und verwenden Sie verwaltete Zertifikate.
  • Reduzieren Sie den Betriebsaufwand mit einer einzelnen Ressource.
  • Speichern Sie Geheimnisse nativ, und binden Sie Sidecar-Container ein.
  • Erhalten Sie klarere Metriken, Warnungen und Liveprotokollstreaming.
  • Verwenden Sie Bereitstellungen mit mehreren Revisionen, und trennen Sie Datenverkehr auf sichere Weise.
  • Wenden Sie detaillierte Skalierungsregeln an (Polling-Intervall, Cooldown).

Hinweis

Es sind keine Codeänderungen erforderlich. Sie können Ihr vorhandenes Containerimage wiederverwenden.

Direkte Legacy-Imagebereitstellung (nicht unterstützt)

Einige Bereitstellungen verwenden eine Standardcontainer-App ohne kind=functionapp und führen ein Funktionsimage manuell aus.

Von Bedeutung

Dieser Ansatz wird nicht unterstützt. Es fehlen automatische Skalierungsregeln, und es erhält keine der kommenden Plattformfeatures von Functions on Azure Container Apps V2 wie die Auflistung von Funktionen, Schlüssel und die Anzahl von Aufrufen.

Empfehlung: Migrieren zu Funktionen auf Azure Container Apps v2.

Voraussetzungen

Vor der Migration:

  • Azure-Abonnement und Berechtigung zum Erstellen von Ressourcen.
  • [Azure CLI](/cli/azure/install-azure-cli-windows?view=azure-cli-latest) (neueste Version) installiert.
  • Erforderliche Erweiterungen: az extension add --name containerapp, az extension add --name functionapp (falls zutreffend).
  • Zugriff auf das Container-Image, das von Ihren Functions bei der Azure Container Apps V1-Bereitstellung verwendet wird.
  • Inventar von Umgebungsvariablen, geheimen Schlüsseln, Speicherbindungen und Netzwerkeinstellungen.

Migrationsverfahren

1. Vorbereiten

  1. Identifizieren Sie, dass Ihre aktuelle Bereitstellung eine Functions on Azure Container Apps V1-App ist.
  2. Exportieren Sie alle Konfigurationsdaten, einschließlich Umgebungsvariablen, geheime Schlüssel, Verbindungszeichenfolgen und benutzerdefinierte Bindungen.
  3. Überprüfen Sie Die Umgebungskontingente (CPU, Arbeitsspeicher, max. Instanzen) und passen Sie bei Bedarf an.
  4. Bestätigen Sie die Verfügbarkeit von Bildern in Ihrer Registrierung.

2. Erstellen Sie eine Functions on Azure Container Apps V2-App

  1. Erstellen oder wiederverwenden Sie eine Azure-Container-Apps-Umgebung.

  2. Stellen Sie eine neue Functions-App auf Azure Container Apps V2 mit demselben Image bereit.

    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. Erneutes Anwenden von Konfigurationsdetails, einschließlich geheimer Schlüssel, Umgebungsvariablen, Identität, Netzwerk.

  4. Aktivieren Sie bei Bedarf die Authentifizierung oder benutzerdefinierte Domäne.

  5. Definieren Sie Skalierungsregeln (HTTP, CPU, Warteschlangentriggerkorrelation nach Bedarf).

3. Überprüfen

  1. Aufrufen von HTTP-ausgelösten Funktionen (curl oder Browser).

  2. Testen Sie jeden Triggertyp (Event Hubs, Service Bus, Timer).

  3. Bestätigen Sie die Telemetrie- und Log Analytics-Protokolle von Application Insights.

  4. Prüfen Sie das Skalierungsverhalten unter Last (Autoskalierungsregeln werden ausgelöst).

  5. Überprüfen Sie, ob Geheimnisse und Verbindungszeichenfolgen ordnungsgemäß aufgelöst werden.

  6. Bestätigen Sie den Status der Gesundheitsüberprüfung und die Details der Containerrevision.

4. Aktualisieren von DNS oder benutzerdefinierten Domänen (optional)

  1. Wenn Sie eine benutzerdefinierte Domäne verwenden, ordnen Sie sie dem neuen Hostnamen von Functions on Azure Container Apps V2 zu (CNAME oder A-Eintrag).

  2. SSL/TLS-Zertifikate neu binden (verwaltet oder hochgeladen).

  3. Testen Sie die Domänenauflösung und den TLS-Handshake.

  4. Kommunizieren Sie Endpunktänderungen intern.

5. Migrieren

  1. Verschieben des Produktionsdatenverkehrs (Aktualisieren von DNS-TTL- oder Routingregeln).

  2. Überwachen Sie Latenz, Fehler und Aufrufanzahlen.

  3. Passen Sie bei Bedarf Skalierungsparameter an (Abkühlmodus, Min/Max-Instanzen).

  4. Verfolgen Sie Protokolle für Anomalien während der ersten Stunden nach.

6. Bereinigen

  1. Deaktivieren Sie die alten Funktionen in der Azure Container Apps V1 App und den zugehörigen Ressourcen.

    Vorsicht

    Überprüfen Sie, dass vor der Löschung noch kein Produktionsverkehr die Funktionen auf dem Azure Container Apps V1-Endpunkt anvisiert.

  2. Entfernen Sie nicht verwendete geheime Schlüssel oder Speicherverweise.

  3. Aktualisieren Sie interne Dokumentationen und betriebliche Runbooks.

Validierungsprüfliste

Artikel Passkriterien
Trigger werden ausgelöst. Alle konfigurierten Trigger werden erfolgreich ausgeführt.
Protokolle und Telemetrie Application Insights zeigt Funktionsaufrufe; Live-Stream von Protokollen
Scaling Die Anzahl der Instanzen passt sich pro Regelkonfiguration an.
Authentifizierung (sofern aktiviert) Geschützte Endpunkte geben erwartete Statuscodes zurück.
Domänen Benutzerdefinierte Domäne wird mit gültigem Zertifikat aufgelöst.
Geheimnisse Vertrauliche Werte werden ohne Fehler geladen.

Operative Verbesserungen (optional)

Verbessern Sie die Zuverlässigkeit nach der Migration: