Freigeben über


Verlagern von Azure Event Hubs in eine andere Region

In diesem Artikel erfahren Sie, wie Sie einen Event Hubs-Namespace und Konfigurationseinstellungen in eine andere Region kopieren.

Wenn die Azure-Ressourcengruppe, die den Event Hubs-Namespace enthält, andere Ressourcen aufweist, empfiehlt es sich, die Vorlage auf Ressourcengruppenebene zu exportieren, damit alle zugehörigen Ressourcen in einem Schritt in die neue Region verschoben werden können. Informationen zum Exportieren einer Ressourcengruppe in die Vorlage finden Sie unter Verschieben von Ressourcen über Regionen hinweg (aus Ressourcengruppe).

Voraussetzungen

  • Stellen Sie sicher, dass die Dienste und Features, die von Ihrem Konto verwendet werden, in der Zielregion unterstützt werden.

  • Wenn Sie im Namespace das Aufzeichnungsfeature für Event Hubs aktiviert haben, verschieben Sie die Azure Storage- oder Azure Data Lake Store Gen 2-Konten, bevor Sie den Event Hubs-Namespace verschieben. Sie können außerdem die Ressourcengruppe, die sowohl Azure Storage- als auch Event Hubs-Namespaces enthält, in die andere Region verschieben, indem Sie die in diesem Artikel beschriebenen Schritte ausführen.

  • Wenn sich der Event Hubs-Namespace in einem Event Hubs-Cluster befindet, verschieben Sie den dedizierten Cluster in die Zielregion, bevor Sie die Schritte in diesem Artikel ausführen. Sie können auch die Schnellstartvorlage auf GitHub verwenden, um einen Event Hubs-Cluster zu erstellen. Entfernen Sie in der Vorlage den Namespaceteil des JSON-Codes, um nur den Cluster zu erstellen.

  • Identifizieren Sie alle Ressourcenabhängigkeiten. Je nachdem, wie Sie Event Hubs bereitgestellt haben, müssen die folgenden Dienste möglicherweise in der Zielregion bereitgestellt werden:

  • Identifizieren Sie alle abhängigen Ressourcen. Event Hubs ist ein Messagingsystem, mit dem Anwendungen Nachrichten veröffentlichen und abonnieren können. Überlegen Sie, ob Ihre Anwendung am Ziel eine Messagingunterstützung für dieselbe Gruppe abhängiger Dienste erfordert, die sie am Quellziel hatte.

Ausfallzeit

Informationen zu den möglichen Ausfallzeiten finden Sie unter Cloud Adoption Framework für Azure: Auswählen einer Verlagerungsmethode.

Überlegungen für Dienstendpunkte

Die VNET-Dienstendpunkte für Azure Event Hubs beschränken den Zugriff auf angegebene virtuelle Netzwerke. Die Endpunkte können auch den Zugriff auf eine Liste von IPv4-Adressbereichen (Internet Protocol, Version 4) beschränken. Allen Benutzern, die außerhalb dieser Quellen eine Verbindung mit Event Hubs herstellen, wird der Zugriff verweigert. Wenn Dienstendpunkte in der Quellregion für die Event Hubs-Ressource konfiguriert wurden, muss das auch im Zielwert der Fall sein.

Für eine erfolgreiche Wiederherstellung von Event Hubs in der Zielregion müssen vorher das VNet und das Subnetz erstellt werden. Wenn die Verschiebung dieser beiden Ressourcen mit dem Azure Resource Mover-Tool durchgeführt wird, werden die Dienstendpunkte nicht automatisch konfiguriert. Daher müssen sie manuell konfiguriert werden, was über das Azure-Portal, die Azure CLI oder über Azure PowerShell erfolgen kann.

Überlegungen für private Endpunkte

Azure Private Link stellt eine private Verbindung zwischen einem virtuellen Netzwerk und Azure-PaaS-Diensten (Platform-as-a-Service), kundeneigenen Diensten oder Diensten von Microsoft-Partnern her. Private Link vereinfacht die Netzwerkarchitektur und schützt die Verbindung zwischen Endpunkten in Azure, indem die Offenlegung von Daten im öffentlichen Internet verhindert wird.

Für eine erfolgreiche Wiederherstellung von Event Hubs in der Zielregion müssen vor der eigentlichen Verschiebung das VNet und das Subnetz erstellt werden.

Vorbereiten

Exportieren Sie zunächst eine Resource Manager-Vorlage. Diese Vorlage enthält Einstellungen, die Ihren Event Hubs-Namespace beschreiben.

  1. Melden Sie sich beim Azure-Portal an.

  2. Wählen Sie Alle Ressourcen und dann Ihren Event Hubs-Namespace aus.

  3. Wählen Sie auf der Seite Event Hubs-Namespace im linken Menü unter Automatisierung die Option Vorlage exportieren aus.

  4. Wählen Sie Herunterladen auf der Seite Vorlage exportieren aus.

    Screenshot, der zeigt, wo die Resource Manager-Vorlage heruntergeladen wird

  5. Suchen Sie die aus dem Portal heruntergeladene ZIP-Datei, und entpacken Sie sie in einen Ordner Ihrer Wahl.

    Diese ZIP-Datei enthält die JSON-Dateien, in denen die Vorlage und Skripts zum Bereitstellen der Vorlage enthalten sind.

Ändern der Vorlage

Ändern Sie die Vorlage, indem Sie den Namen und die Region des Event Hubs-Namespace ändern.

  1. Wählen Sie Vorlagenbereitstellung aus.

  2. Wählen Sie im Azure-Portal die Option Erstellen aus.

  3. Wählen Sie Eigene Vorlage im Editor erstellen.

  4. Wählen Sie Datei laden aus, und befolgen Sie dann die Anweisungen zum Laden der Datei template.json, die Sie im vorherigen Abschnitt heruntergeladen haben.

  5. Benennen Sie in der Datei template.json den Event Hubs-Namespace, indem Sie den Standardwert des Namespacenamens festlegen. In diesem Beispiel wird der Standardwert des Event Hubs-Namespacenamens auf namespace-name festgelegt.

     "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
     "contentVersion": "1.0.0.0",
     "parameters": {
         "namespaces_name": {
             "defaultValue": "namespace-name",
             "type": "String"
         },
     },
    
  6. Bearbeiten Sie die location-Eigenschaft in der Datei template.json in der Zielregion. Dieses Beispiel legt den Zielbereich auf centralus fest.

    "resources": [
        {
            "type": "Microsoft.KeyVault/vaults",
            "apiVersion": "2023-07-01",
            "name": "[parameters('vaults_name')]",
            "location": "centralus",
    
        },
    
    ]
    
    
     "resources": [
     {
         "type": "Microsoft.EventHub/namespaces",
         "apiVersion": "2023-01-01-preview",
         "name": "[parameters('namespaces_name')]",
         "location": "centralus",
    
      },
     {
         "type": "Microsoft.EventHub/namespaces/authorizationrules",
         "apiVersion": "2023-01-01-preview",
         "name": "[concat(parameters('namespaces_name'), '/RootManageSharedAccessKey')]",
         "location": "centralus",
         "dependsOn": [
             "[resourceId('Microsoft.EventHub/namespaces', parameters('namespaces_name'))]"
         ],
         "properties": {
             "rights": [
                 "Listen",
                 "Manage",
                 "Send"
             ]
         }
     },
     {
         "type": "Microsoft.EventHub/namespaces/networkrulesets",
         "apiVersion": "2023-01-01-preview",
         "name": "[concat(parameters('namespaces_name'), '/default')]",
         "location": "centralus",
         "dependsOn": [
             "[resourceId('Microsoft.EventHub/namespaces', parameters('namespaces_name'))]"
         ],
         "properties": {
             "publicNetworkAccess": "Enabled",
             "defaultAction": "Deny",
             "virtualNetworkRules": [
                 {
                     "subnet": {
                         "id": "[concat(parameters('virtualNetworks_vnet_akv_externalid'), '/subnets/default')]"
                     },
                     "ignoreMissingVnetServiceEndpoint": false
                 }
             ],
             "ipRules": [],
             "trustedServiceAccessEnabled": false
         }
     },
     {
         "type": "Microsoft.EventHub/namespaces/privateEndpointConnections",
         "apiVersion": "2023-01-01-preview",
         "name": "[concat(parameters('namespaces_peterheesbus_name'), '/81263915-15d5-4f14-8d65-25866d745a66')]",
         "location": "centralus",
         "dependsOn": [
             "[resourceId('Microsoft.EventHub/namespaces', parameters('namespaces_peterheesbus_name'))]"
         ],
         "properties": {
             "provisioningState": "Succeeded",
             "privateEndpoint": {
                 "id": "[parameters('privateEndpoints_pvs_eventhub_externalid')]"
             },
             "privateLinkServiceConnectionState": {
                 "status": "Approved",
                 "description": "Auto-Approved"
             }
         }
     }
    

    Informationen zum Abrufen von Regionsstandortcodes finden Sie unter Azure-Standorte. Der Code für eine Region ist der Regionsname ohne Leerzeichen, USA, Mitte = centralus.

  7. Entfernen Sie Ressourcen vom Typ „privater Endpunkt“ in der Vorlage.

     {
         "type": "Microsoft.EventHub/namespaces/privateEndpointConnections",
    
     }
    
  8. Wenn Sie einen Dienstendpunkt in Ihrer Event Hubs-Instanz konfiguriert haben, fügen Sie im Abschnitt networkrulesets unter virtualNetworkRules die Regel für das Zielsubnetz hinzu. Stellen Sie sicher, dass das Flag ignoreMissingVnetServiceEndpoint_ auf False festgelegt ist, damit die IaC Event Hubs nicht bereitstellen kann, wenn der Dienstendpunkt nicht in der Zielregion konfiguriert ist.

    _parameter.json_

    {
      "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
    
        "target_vnet_externalid": {
          "value": "virtualnetwork-externalid"
        },
        "target_subnet_name": {
          "value": "subnet-name"
        }
      }
    }
    

    _template.json

    {
        "type": "Microsoft.EventHub/namespaces/networkrulesets",
        "apiVersion": "2023-01-01-preview",
        "name": "[concat(parameters('namespaces_name'), '/default')]",
        "location": "centralus",
        "dependsOn": [
            "[resourceId('Microsoft.EventHub/namespaces', parameters('namespaces_name'))]"
        ],
        "properties": {
            "publicNetworkAccess": "Enabled",
            "defaultAction": "Deny",
            "virtualNetworkRules": [
                {
                    "subnet": {
                        "id": "[concat(parameters('target_vnet_externalid), concat('/subnets/', parameters('target_subnet_name')]"
                    },
                    "ignoreMissingVnetServiceEndpoint": false
                }
            ],
            "ipRules": [],
            "trustedServiceAccessEnabled": false
        }
    },
    
    
  9. Wählen Sie Speichern aus, um die Vorlage zu speichern.

Erneute Bereitstellung

  1. Klicken Sie im Azure-Portal auf Ressource erstellen.

  2. Geben Sie in Marketplace durchsuchen die Zeichenfolge Vorlagenbereitstellung ein, und wählen Sie Vorlagenbereitstellung (mit benutzerdefinierten Vorlagen bereitstellen) aus.

  3. Wählen Sie Eigene Vorlage im Editor erstellen.

  4. Wählen Sie Datei laden aus, und befolgen Sie die Anweisungen zum Laden der Datei template.json, die Sie im vorherigen Abschnitt geändert haben.

  5. Gehen Sie auf der Seite Benutzerdefinierte Bereitstellung wie folgt vor:

    1. Wählen Sie ein Azure-Abonnement aus.
    2. Wählen Sie eine vorhandene Ressourcengruppe aus, oder erstellen Sie eine. Wenn sich der Quellnamespace in einem Event Hubs-Cluster befindet, wählen Sie die Ressourcengruppe aus, die den Cluster in der Zielregion enthält.
    3. Wählen Sie den Zielspeicherort oder die Zielregion aus. Wenn Sie eine vorhandene Ressourcengruppe ausgewählt haben, ist diese Einstellung schreibgeschützt.
    4. Führen Sie im Abschnitt EINSTELLUNGEN die folgenden Schritte aus:
      1. Geben Sie den neuen Namespacenamen ein.

        Bereitstellen der Resource Manager-Vorlage

      2. Wenn sich der Quellnamespace in einem Event Hubs-Cluster befand, geben Sie die Namen der Ressourcengruppe und des Event Hubs-Clusters als Teil der externen ID ein.

        /subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<CLUSTER'S RESOURCE GROUP>/providers/Microsoft.EventHub/clusters/<CLUSTER NAME>
        
      3. Wenn Event Hubs in Ihrem Namespace ein Azure Storage-Konto für das Erfassen von Ereignissen verwendet, geben Sie den Namen der Ressourcengruppe und des Speicherkontos im Feld StorageAccounts_<original storage account name>_external ein.

        /subscriptions/0000000000-0000-0000-0000-0000000000000/resourceGroups/<STORAGE'S RESOURCE GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE ACCOUNT NAME>
        
    5. Wählen Sie am unteren Rand der Seite die Option Bewerten + erstellen aus.
    6. Überprüfen Sie die Einstellungen auf der Seite Überprüfen und erstellen, und wählen Sie dann Erstellen aus.
  6. Netzwerkkonfigurationseinstellungen (private Endpunkte) müssen in der neuen Event Hubs-Instanz erneut konfiguriert werden.

Verwerfen oder Bereinigen

Wenn Sie nach der Bereitstellung von vorne beginnen möchten, können Sie den Event Hubs-Zielnamespace löschen und die in den Abschnitten Vorbereiten und Verschieben dieses Artikels beschriebenen Schritte wiederholen.

Um die Änderungen zu committen und das Verschieben eines Event Hubs-Namespace abzuschließen, löschen Sie den Event Hubs-Namespace in der ursprünglichen Region. Vergewissern Sie sich, dass Sie alle Ereignisse im Namespace verarbeitet haben, bevor Sie den Namespace löschen.

So löschen Sie einen Event Hubs-Quell- oder -Zielnamespace im Azure-Portal

  1. Geben Sie im Suchfenster oben im Azure-Portal Event Hubs ein, und wählen Sie in den Suchergebnissen Event Hubs aus. Die Event Hubs-Namespaces werden in einer Liste angezeigt.

  2. Wählen Sie den zu löschenden Zielnamespace und dann auf der Symbolleiste Löschen aus.

    Screenshot der Schaltfläche „Namespace löschen“

  3. Bestätigen Sie den Löschvorgang auf der Seite Namespace löschen, indem Sie den Namespacenamen eingeben und dann Löschen auswählen.

Nächste Schritte

In dieser Vorgehensanleitung haben Sie gelernt, wie Sie einen Event Hubs-Namespace aus einer Region in eine andere verschieben.

Anweisungen zum Verschieben eines Event Hubs-Clusters von einer Region in eine andere finden Sie im Artikel Verlagern von Event Hubs in eine andere Region.

Weitere Informationen zum Verschieben von Ressourcen zwischen Regionen und zur Notfallwiederherstellung in Azure finden Sie unter: