Verschieben von Azure-Container-Apps in eine andere Region

In diesem Artikel wird beschrieben, wie Sie eine Azure-Container-Apps-Workload in eine andere Azure-Region verschieben, indem Sie die verwaltete Umgebung und Container-Apps in der Zielregion neu erstellen. Der Prozess umfasst den Export der Anwendungskonfiguration, das erneute Bereitstellen von Ressourcen, die Überprüfung der Bereitstellung und das Bereinigen von Ressourcen in der Quellregion.

Important

Azure-Container-Apps unterstützen keine vor Ort-Regionenmigration. Sie erstellen Ressourcen in der Zielregion neu – vorhandene Ressourcen werden nicht verschoben. Dieser Artikel behandelt die Verlagerung der Konfiguration und Infrastruktur von Container-Apps. Die Replikation von Anwendungsdaten, Datenbanken oder anderen zustandsbehafteten Abhängigkeiten wird nicht behandelt.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie die folgenden Anforderungen erfüllen:

  • Azure-Container-Apps sind in der Zielregion verfügbar.
  • Die Zielregion unterstützt dieselben Container-Apps-Features, Workloadprofile und Netzwerkoptionen, die Sie in der Quellregion verwenden.
  • Sie verfügen über ein ausreichendes Kontingent in der Zielregion für die Ressourcen, die Sie bereitstellen möchten.
  • Sie verfügen über die folgenden Berechtigungen sowohl in den Quell- als auch in den Zielabonnements:
    • Besitzer oder Mitwirkender in der Ressourcengruppe.
    • Container Apps Contributor (empfohlen). Diese Rolle umfasst Wildcard-Berechtigungen, die Zugriff auf Container-Apps-Geheimwerte gewähren. Für engeren Zugriff siehe Berechtigungen zur Verwaltung von Geheimnissen.
  • Ihre Containerimages befinden sich in einer Registrierung, auf die über die Zielregion zugegriffen werden kann (z. B. Azure Container Registry oder eine unterstützte externe Registrierung).
  • Abhängige Azure-Ressource wie Key Vault, Speicherkonten, Datenbanken, virtuelle Netzwerke und Messagingdienste sind entweder bereits in der Zielregion verfügbar oder verfügen über einen Plan für die erneute Bereitstellung.

Tip

Wenn Sie Azure Container Registry (ACR) verwenden, sollten Sie die Georeplikation aktivieren, um Bilder in der Zielregion verfügbar zu machen, ohne die Registrierung erneut bereitzustellen.

az acr replication create --registry <REGISTRY_NAME> --location <TARGET_REGION>

Verstehen von Ausfallzeitenanforderungen

Azure-Container-Apps unterstützen keine Migration von Live-Regionen. Ausfallzeiten werden in erster Linie durch DNS-Propagation und Änderungen im Datenverkehrsrouting während der Umschaltung verursacht. So minimieren Sie die Auswirkungen:

  1. Stellen Sie zuerst die Container-App in der Zielregion bereit und überprüfen Sie sie.
  2. Niedrigere DNS-TTL-Werte im Voraus (z. B. auf 60 Sekunden), sodass sich Routingänderungen schnell verteilen.
  3. Leiten Sie den Produktionsdatenverkehr erst nach Abschluss der Überprüfung an den neuen Endpunkt um.
  4. Lassen Sie die Quellcontainer-App weiterlaufen, bis Sie sich vergewissert haben, dass die Zielbereitstellung fehlerfrei funktioniert.

Vorbereiten

Um sich auf die Verlagerung vorzubereiten, exportieren Sie die Quellkonfiguration, und überprüfen Sie alle regionsspezifischen Einstellungen.

Identifizieren von Abhängigkeiten

Die folgenden abhängigen Ressourcen müssen vor der Übernahme in der Zielregion vorhanden sein:

  • Azure Key Vault (ein Dienst zur sicheren Verwaltung kryptografischer Schlüssel)
  • Speicherkonten
  • Datenbanken und Messagingdienste (z. B. Azure Service Bus, Azure Cosmos DB)
  • Virtuelle Netzwerke, Subnetze und private Endpunkte
  • Netzwerksicherheitsgruppen (NSGs) und benutzerdefinierte Routen (UDRs)
  • Privates DNS Zonen
  • Log Analytics-Arbeitsbereiche
  • Dapr-Komponenten (falls verwendet)

Important

Geheime Schlüssel, Zertifikate, benutzerdefinierte Domänen und sichere Konfigurationswerte bleiben in exportierten Vorlagen nicht erhalten . Sie müssen diese Ressourcen manuell in der Zielregion aus ihren ursprünglichen Quellen neu erstellen.

Plan für Änderungen an der verwalteten Identität

Die Verarbeitung verwalteter Identitäten hängt vom Identitätstyp ab:

  • Vom System zugewiesene Identität: Wenn Sie die Container-App neu erstellen, generiert Azure eine neue Prinzipal-ID. Sie müssen alle RBAC-Rollen, Azure Key Vault-Zugriffsrichtlinien und nachgelagerte Dienstberechtigungen der neuen Identität neu zuweisen.

  • Vom Benutzer zugewiesene Identität: Vom Benutzer zugewiesene verwaltete Identitäten sind regionale Ressourcen und können nicht in Regionen verschoben werden. Erstellen Sie eine neue vom Benutzer zugewiesene Identität in der Zielregion, und weisen Sie die erforderlichen Berechtigungen vor der Bereitstellung zu.

Exportieren der Quellkonfiguration

Verwenden Sie das Azure-Portal, um ARM-Vorlagen sowohl für die verwaltete Container-App als auch für einzelne Container-Apps zu exportieren.

  1. Melden Sie sich im Azure-Portal an.
  2. Navigieren Sie zur verwalteten Umgebung von Container-Apps oder zur Container-App-Ressource.
  3. Wählen Sie im linken Menü Automatisierung>Exportvorlage aus.
  4. Wählen Sie "Herunterladen" aus, und extrahieren Sie die .zip Datei in einen lokalen Ordner.

Zu den extrahierten Dateien gehören:

Datei Description
template.json Ressourcenkonfigurationsdefinition
Parameterdateien Bereitstellungsparameterwerte
Bereitstellungsskripts Skripts für die Vorlagenausführung

Hinweis

Exportierte Vorlagen dienen als Ausgangspunkt für das Verständnis Ihrer Konfiguration. Sie enthalten möglicherweise schreibgeschützte Eigenschaften, die Sie entfernen müssen, und sie enthalten keine Geheimnisse oder Zertifikatwerte. Überprüfen Sie die exportierte Ausgabe sorgfältig, bevor Sie sie für die erneute Bereitstellung verwenden.

Ändern der Vorlage für verwaltete Umgebung

Aktualisieren Sie vor der erneuten Bereitstellung der verwalteten Umgebung die exportierte Konfiguration:

  • Aktualisieren Sie den Speicherort: Legen Sie die location Eigenschaft auf die Zielregion von Azure fest.
  • Überprüfen von Ressourcennamen: Stellen Sie sicher, dass der Name der verwalteten Umgebung innerhalb der Zielressourcengruppe und -region eindeutig ist.
  • Überprüfen Sie die Log Analytics-Konfiguration: Aktualisieren Sie die Log Analytics-Arbeitsbereichsreferenz, wenn der Arbeitsbereich regionsspezifisch ist. Möglicherweise müssen Sie einen neuen Arbeitsbereich in der Zielregion erstellen.
  • Entfernen Sie schreibgeschützte Eigenschaften: Wenn Sie aus dem Portal exportiert haben, entfernen Sie Eigenschaften wie id, type, systemData und andere schreibgeschützte Felder, die Bereitstellungsfehler verursachen.

Ändern der Container-App-Vorlage

Nehmen Sie nach dem Exportieren der Container-App-Konfiguration die folgenden Änderungen vor:

  • Aktualisieren Sie den Verweis auf die verwaltete Umgebung: Ersetzen Sie managedEnvironmentId durch die Ressourcen-ID der neuen verwalteten Umgebung in der Zielregion. Verwaltete Umgebungen sind regionsgebunden und können nicht über Regionen hinweg wiederverwendet werden.

  • Überprüfen Sie Containerimageverweise: Vergewissern Sie sich, dass Imageverweise auf eine Containerregistrierung verweisen, auf die über die Zielregion zugegriffen werden kann. Wenn Sie die ACR-Georeplikation aktiviert haben, funktionieren die vorhandenen Verweise möglicherweise ohne Änderungen.

  • Überprüfen Sie die Eingangskonfiguration: Nach der erneuten Bereitstellung ändert sich der vollqualifizierte Domänenname (Fully Qualified Domain Name, FQDN) der Anwendung. Planen Sie, während der Umschaltung benutzerdefinierte DNS-Einträge und das Datenverkehrsrouting zu aktualisieren.

  • Konfigurieren Sie geheime Schlüssel und App-Einstellungen neu: Erstellen Sie geheime Schlüssel mithilfe von Azure Key Vault-Verweisen oder Anwendungskonfigurationen neu. Verlassen Sie sich nicht auf exportierte Werte für vertrauliche Einstellungen.

  • Aktualisieren Von Dapr-Komponenten: Wenn Sie Dapr verwenden, stellen Sie sicher, dass dapr-Komponentenkonfigurationen auf Ressourcen verweisen, die in der Zielregion verfügbar sind (z. B. Statusspeicher, Pub/Sub-Broker, geheime Speicher).

  • Aktualisieren der Diagnose und Überwachung: Überprüfen Sie die Referenzen des Log Analytics-Arbeitsbereichs, und konfigurieren Sie diagnoseeinstellungen bei Bedarf neu.

Erneute Bereitstellung

Verwaltete Azure-Container-Apps-Umgebungen sind regionsgebunden. Erstellen Sie die verwaltete Umgebung in der Zielregion, bevor Sie container-Apps erneut bereitstellen.

Bereitstellen der verwalteten Umgebung

  1. Wechseln Sie im Azure-Portal zur Zielressourcengruppe.
  2. Wählen Sie "Bereitstellen einer benutzerdefinierten Vorlage" aus.
  3. Wählen Sie " Eigene Vorlage erstellen" im Editor aus, und laden Sie die geänderte ARM-Vorlage hoch.
  4. Überprüfen Sie die Bereitstellungseinstellungen, und wählen Sie dann "Überprüfen+ erstellen" aus, um die Bereitstellung zu starten.

Überprüfung des Zugriffs auf die Containerregistrierung

Vergewissern Sie sich vor der Bereitstellung der Container-App, dass die von der Container-App verwendete Identität (vom System zugewiesene oder vom Benutzer zugewiesene verwaltete Identität) der AcrPull-Rolle in der Azure-Containerregistrierung zugewiesen ist.

az role assignment create \
  --assignee <IDENTITY_PRINCIPAL_ID> \
  --role AcrPull \
  --scope <ACR_RESOURCE_ID>

Hinweis

Wenn die Container-App auf ein ACR in einem anderen Abonnement oder einer anderen Region verweist, überprüfen Sie, ob die erforderlichen Berechtigungen im Voraus konfiguriert sind, um Image-Pullfehler während der Bereitstellung zu verhindern.

Bereitstellen der Container-App

  1. Wechseln Sie im Azure-Portal zur Zielressourcengruppe.
  2. Wählen Sie "Bereitstellen einer benutzerdefinierten Vorlage" aus.
  3. Laden Sie die geänderte ARM-Vorlage für die Container-App hoch.
  4. Überprüfen Sie die Einstellungen, und schließen Sie die Bereitstellung ab.

Konfigurieren von Netzwerken

Konfigurieren Sie nach der Bereitstellung die Netzwerkkonfiguration so neu, dass sie mit der Quellkonfiguration übereinstimmt:

  1. Konfigurieren Des Eingangs: Einrichten eines öffentlichen oder privaten Eingangs basierend auf dem Belichtungsmodell Ihrer Anwendung.

  2. VNet-Integration erneut anwenden: Verwendet die Container-App ein privates Netzwerk, konfigurieren Sie das VNet, Subnetze, private Endpunkte und private DNS-Zonen in der Zielregion.

  3. Aktualisieren Sie NSGs und UDRs: Erstellen Sie nach Bedarf Netzwerksicherheitsgruppen und benutzerdefinierte Routen neu.

  4. Ip-Zulassungslisten aktualisieren: Wenn nachgeschaltete Dienste IP-basierte Zulassungslisten verwenden, aktualisieren Sie sie mit den neuen ausgehenden IP-Adressen aus der Zielregion-Umgebung.

  5. Konfigurieren von benutzerdefinierten Domänen und Zertifikaten: Benutzerdefinierte Domänen und TLS-Zertifikate werden während der Verlagerung nicht übertragen. Konfigurieren Sie sie in der neuen Container-App neu, und aktualisieren Sie DNS-Einträge.

Cutoverdatenverkehr

Leiten Sie den Datenverkehr nach der Überprüfung an die Bereitstellung in der Zielregion um.

  1. Wenn Sie die DNS-TTL zuvor gesenkt haben, aktualisieren Sie die DNS-Einträge so, dass sie auf den neuen FQDN der Container-App verweisen.

  2. Wenn Sie Azure Front Door oder Azure Traffic Manager verwenden, aktualisieren Sie den Back-End-Pool oder Endpunkt, um die Zielregion-Container-App einzuschließen und den Quellregionenendpunkt zu entfernen.

  3. Überwachen Sie den Datenverkehr, um sicherzustellen, dass Anforderungen die neue Bereitstellung erreichen.

Tip

Halten Sie die Quellcontainer-App während des Rollbackfensters am Laufen. Wenn Probleme auftreten, stellen Sie das DNS- oder Datenverkehrsrouting auf den Quellendpunkt zurück, bis Sie das Problem beheben.

Überprüfen

Überprüfen Sie nach dem Cutover des Datenverkehrs die folgenden Punkte:

  • Anwendungsverfügbarkeit und Reaktionszeiten.
  • Skalierungsverhalten unter erwarteter und Spitzenlast.
  • Konnektivität zu abhängigen Diensten wie Datenbanken, Key Vault, Speicher und Messaging.
  • Verwalteter Identitätszugriff auf nachgeschaltete Ressourcen.
  • Dapr-Komponentenfunktionalität, falls verwendet.
  • Protokolle und Metriken, die an Azure Monitor und Log Analytics fließen.

Überprüfen Sie mithilfe der CLI:

# Confirm the container app is running
az containerapp show \
  --name <APP_NAME> \
  --resource-group <TARGET_RESOURCE_GROUP> \
  --query "{status:properties.runningStatus, fqdn:properties.configuration.ingress.fqdn}" \
  --output table

# Test the application endpoint
curl -s -o /dev/null -w "%{http_code}" https://<APP_FQDN>/health

Important

Lassen Sie die Quellcontainer-App weiterlaufen, bis die Überprüfung abgeschlossen ist und sichergestellt wurde, dass die Zielbereitstellung fehlerfrei ist. Definieren Sie ein Rollbackfenster, z. B. 24 bis 48 Stunden, bevor Sie Quellressourcen bereinigen.

Bereinigen von Quellressourcen

Nach erfolgreicher Überprüfung und Cutover des Datenverkehrs:

  1. Löschen Sie die Quellcontainer-App.
  2. Löschen Sie die verwaltete Quellumgebung, wenn Sie sie nicht mehr benötigen.
  3. Entfernen Sie nicht verwendete Containerimages, Netzwerkressourcen und Identitätszuweisungen, um unnötige Gebühren zu vermeiden.
  4. Aktualisieren Sie alle Überwachungsdashboards oder Warnungsregeln, die auf die Quellressourcen verwiesen haben.

Einschränkungen

  • Azure Container-Apps unterstützen keine In-Place- oder Live-Migration von Regionen.
  • Sie müssen geheime Schlüssel, Zertifikate und benutzerdefinierte Domänen neu erstellen.
  • Der Überarbeitungsverlauf wird in der Zielbereitstellung nicht beibehalten.
  • Eine Ausfallzeit ist während der Übernahme erforderlich.
  • Die vom System zugewiesene Prinzipal-ID der verwalteten Identität ändert sich, sodass Sie alle RBAC-Zuordnungen neu erstellen müssen.
  • Vom Benutzer zugewiesene verwaltete Identitäten sind regional und müssen in der Zielregion neu erstellt werden.
  • Änderungen an ausgehenden IP-Adressen, die sich auf nachgeschaltete Dienst-Zulassungslisten auswirken können.