Przenoszenie usługi Azure Event Hubs do innego regionu

W tym artykule pokazano, jak skopiować przestrzeń nazw i ustawienia konfiguracji usługi Event Hubs do innego regionu.

Jeśli masz inne zasoby w grupie zasobów platformy Azure, która zawiera przestrzeń nazw usługi Event Hubs, możesz wyeksportować szablon na poziomie grupy zasobów, aby wszystkie powiązane zasoby mogły zostać przeniesione do nowego regionu w jednym kroku. Aby dowiedzieć się, jak wyeksportować grupę zasobów do szablonu, zobacz Przenoszenie zasobów między regionami (z grupy zasobów).

Wymagania wstępne

  • Upewnij się, że usługi i funkcje używane przez konto są obsługiwane w regionie docelowym.

  • Jeśli włączono funkcję przechwytywania dla centrów zdarzeń w przestrzeni nazw, przenieś konta usługi Azure Storage lub Azure Data Lake Store Gen 2 przed przeniesieniem przestrzeni nazw usługi Event Hubs. Możesz również przenieść grupę zasobów zawierającą przestrzenie nazw usługi Storage i Event Hubs do innego regionu, wykonując kroki podobne do opisanych w tym artykule.

  • Jeśli przestrzeń nazw usługi Event Hubs znajduje się w klastrze usługi Event Hubs, przed wykonaniem kroków opisanych w tym artykule przenieś dedykowany klaster do regionu docelowego. Możesz również użyć szablonu szybkiego startu w usłudze GitHub , aby utworzyć klaster usługi Event Hubs. W szablonie usuń część przestrzeni nazw w formacie JSON, aby utworzyć tylko klaster.

  • Zidentyfikuj wszystkie zależności zasobów. W zależności od sposobu wdrożenia usługi Event Hubs może być konieczne wdrożenie następujących usług w regionie docelowym:

  • Zidentyfikuj wszystkie zasoby zależne. Event Hubs to system obsługi komunikatów, który umożliwia aplikacjom publikowanie i subskrybowanie komunikatów. Zastanów się, czy aplikacja docelowa wymaga obsługi komunikatów dla tego samego zestawu usług zależnych, które miały w lokalizacji docelowej źródłowej.

Przestój

Aby zrozumieć możliwe przestoje, zobacz Cloud Adoption Framework for Azure: Select a relocation method (Przewodnik Cloud Adoption Framework dla platformy Azure: wybieranie metody relokacji).

Zagadnienia dotyczące punktów końcowych usługi

Punkty końcowe usługi sieci wirtualnej dla usługi Azure Event Hubs ograniczają dostęp do określonej sieci wirtualnej. Punkty końcowe mogą również ograniczyć dostęp do listy zakresów adresów IPv4 (protokół internetowy w wersji 4). Każdy użytkownik nawiązujący połączenie z usługą Event Hubs spoza tych źródeł nie ma dostępu. Jeśli punkty końcowe usługi zostały skonfigurowane w regionie źródłowym dla zasobu usługi Event Hubs, należy to zrobić w tym samym miejscu docelowym.

W celu pomyślnego odtworzenia usługi Event Hubs w regionie docelowym należy wcześniej utworzyć sieć wirtualną i podsieć. W przypadku przenoszenia tych dwóch zasobów za pomocą narzędzia Azure Resource Mover punkty końcowe usługi nie będą konfigurowane automatycznie. W związku z tym należy je skonfigurować ręcznie, co można zrobić za pośrednictwem witryny Azure Portal, interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.

Zagadnienia dotyczące prywatnego punktu końcowego

Usługa Azure Private Link zapewnia prywatną łączność z sieci wirtualnej do platformy Azure jako usługi (PaaS), należących do klienta lub usług partnerskich firmy Microsoft. Usługa Private Link upraszcza architekturę sieci i zabezpiecza połączenie między punktami końcowymi na platformie Azure, eliminując narażenie danych na publiczny Internet.

W celu pomyślnego odtworzenia usługi Event Hubs w regionie docelowym należy utworzyć sieć wirtualną i podsieć, zanim nastąpi rzeczywista rekreacja.

Przygotowywanie

Aby rozpocząć, wyeksportuj szablon usługi Resource Manager. Ten szablon zawiera ustawienia opisujące przestrzeń nazw usługi Event Hubs.

  1. Zaloguj się w witrynie Azure Portal.

  2. Wybierz pozycję Wszystkie zasoby , a następnie wybierz przestrzeń nazw usługi Event Hubs.

  3. Na stronie Przestrzeń nazw usługi Event Hubs wybierz pozycję Eksportuj szablon w obszarze Automatyzacja w menu po lewej stronie.

  4. Wybierz pozycję Pobierz na stronie Eksportuj szablon .

    Zrzut ekranu przedstawiający miejsce pobierania szablonu usługi Resource Manager

  5. Znajdź plik .zip pobrany z portalu i rozpakuj ten plik do wybranego folderu.

    Ten plik zip zawiera pliki .json zawierające szablon i skrypty do wdrożenia szablonu.

Modyfikowanie szablonu

Zmodyfikuj szablon, zmieniając nazwę i region przestrzeni nazw usługi Event Hubs.

  1. Wybierz pozycję Wdrożenie szablonu.

  2. W witrynie Azure Portal wybierz pozycję Utwórz.

  3. Wybierz pozycję Utwórz własny szablon w edytorze.

  4. Wybierz pozycję Załaduj plik, a następnie postępuj zgodnie z instrukcjami, aby załadować plik template.json pobrany w ostatniej sekcji.

  5. W pliku template.json nadaj przestrzeni nazw usłudze Event Hubs nazwę, ustawiając domyślną wartość nazwy przestrzeni nazw. W tym przykładzie ustawiono wartość domyślną nazwy przestrzeni nazw usługi Event Hubs na namespace-namewartość .

     "$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. Edytuj właściwość location w pliku template.json do regionu docelowego. W tym przykładzie ustawiono region docelowy na centraluswartość .

    "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"
             }
         }
     }
    

    Aby uzyskać kody lokalizacji regionów, zobacz Lokalizacje platformy Azure. Kod regionu to nazwa regionu bez spacji Środkowe stany USA = .

  7. Usuń zasoby typu prywatny punkt końcowy w szablonie.

     {
         "type": "Microsoft.EventHub/namespaces/privateEndpointConnections",
    
     }
    
  8. Jeśli skonfigurowano punkt końcowy usługi w usłudze Event Hubs, w sekcji w networkrulesets obszarze virtualNetworkRulesdodaj regułę dla podsieci docelowej. Upewnij się, że flaga ignoreMissingVnetServiceEndpoint_ jest ustawiona na False, aby usługa IaC nie mogła wdrożyć usługi Event Hubs w przypadku, gdy punkt końcowy usługi nie jest skonfigurowany w regionie docelowym.

    _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. Wybierz pozycję Zapisz , aby zapisać szablon.

Wdróż ponownie

  1. W witrynie Azure Portal wybierz polecenie Utwórz zasób.

  2. W obszarze Wyszukaj w witrynie Marketplace wpisz wdrożenie szablonu i wybierz pozycję Wdrożenie szablonu (wdrażanie przy użyciu szablonów niestandardowych)..

  3. Wybierz pozycję Utwórz własny szablon w edytorze.

  4. Wybierz pozycję Załaduj plik, a następnie postępuj zgodnie z instrukcjami, aby załadować plik template.json zmodyfikowany w ostatniej sekcji.

  5. Na stronie Wdrażanie niestandardowe wykonaj następujące kroki:

    1. Wybierz subskrypcję platformy Azure.
    2. Wybierz istniejącą grupę zasobów lub utwórz grupę. Jeśli źródłowa przestrzeń nazw znajdowała się w klastrze usługi Event Hubs, wybierz grupę zasobów zawierającą klaster w regionie docelowym.
    3. Wybierz lokalizację docelową lub region. Jeśli wybrano istniejącą grupę zasobów, to ustawienie jest tylko do odczytu.
    4. W sekcji USTAWIENIA wykonaj następujące czynności:
      1. Wprowadź nową nazwę przestrzeni nazw.

        Wdrażanie szablonu usługi Resource Manager

      2. Jeśli źródłowa przestrzeń nazw znajdowała się w klastrze usługi Event Hubs, wprowadź nazwy grupy zasobów i klastra usługi Event Hubs w ramach identyfikatora zewnętrznego.

        /subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<CLUSTER'S RESOURCE GROUP>/providers/Microsoft.EventHub/clusters/<CLUSTER NAME>
        
      3. Jeśli usługa Event Hubs w przestrzeni nazw używa konta magazynu do przechwytywania zdarzeń, określ nazwę grupy zasobów i konto magazynu dla StorageAccounts_<original storage account name>_external pola.

        /subscriptions/0000000000-0000-0000-0000-0000000000000/resourceGroups/<STORAGE'S RESOURCE GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE ACCOUNT NAME>
        
    5. Wybierz pozycję Przejrzyj i utwórz w dolnej części strony.
    6. Na stronie Przeglądanie i tworzenie przejrzyj ustawienia, a następnie wybierz pozycję Utwórz.
  6. Ustawienia konfiguracji sieci (prywatne punkty końcowe) muszą zostać ponownie skonfigurowane w nowym usłudze Event Hubs.

Odrzucanie lub czyszczenie

Jeśli chcesz rozpocząć od wdrożenia, możesz usunąć docelową przestrzeń nazw usługi Event Hubs i powtórzyć kroki opisane w sekcjach Przygotowywanie i przenoszenie tego artykułu.

Aby zatwierdzić zmiany i zakończyć przenoszenie przestrzeni nazw usługi Event Hubs, usuń przestrzeń nazw usługi Event Hubs w oryginalnym regionie. Przed usunięciem przestrzeni nazw upewnij się, że wszystkie zdarzenia w przestrzeni nazw są przetwarzane.

Aby usunąć przestrzeń nazw usługi Event Hubs (źródło lub obiekt docelowy) przy użyciu witryny Azure Portal:

  1. W oknie wyszukiwania w górnej części witryny Azure Portal wpisz Event Hubs i wybierz pozycję Event Hubs z wyników wyszukiwania. Przestrzenie nazw usługi Event Hubs są widoczne na liście.

  2. Wybierz docelową przestrzeń nazw do usunięcia, a następnie wybierz pozycję Usuń na pasku narzędzi.

    Zrzut ekranu przedstawiający przycisk Usuń przestrzeń nazw

  3. Na stronie Usuń przestrzeń nazw potwierdź usunięcie, wpisując nazwę przestrzeni nazw, a następnie wybierz pozycję Usuń.

Następne kroki

W tym przewodniku przedstawiono sposób przenoszenia przestrzeni nazw usługi Event Hubs z jednego regionu do innego.

Aby uzyskać instrukcje dotyczące przenoszenia klastra usługi Event Hubs z jednego regionu do innego regionu, zobacz Artykuł Przenoszenie usługi Event Hubs do innego regionu .

Aby dowiedzieć się więcej na temat przenoszenia zasobów między regionami i odzyskiwaniem po awarii na platformie Azure, zobacz: