Compartir vía


Reubicación de Azure Event Hubs en otra región

En este artículo se muestra cómo copiar un espacio de nombres de Event Hubs y las opciones de configuración en otra región.

Si tiene otros recursos en el grupo de recursos de Azure que contiene el espacio de nombres de Event Hubs, puede exportar la plantilla en el nivel del grupo de recursos para que todos los recursos relacionados se puedan trasladar a la nueva región en un solo paso. Para obtener información sobre cómo exportar un grupo de recursos a la plantilla, consulte Traslado de recursos entre regiones (desde el grupo de recursos).

Requisitos previos

  • Asegúrese de que los servicios y las características que usa su cuenta se admitan en la región de destino.

  • Si tiene Característica de captura habilitada para Event Hubs en el espacio de nombres, mueva las cuentas de Azure Storage o Azure Data Lake Store Gen 2 antes de mover el espacio de nombres Event Hubs. También puede trasladar el grupo de recursos que contiene los espacios de nombres de Storage y de Event Hubs a la otra región siguiendo unos pasos similares a los que se describen en este artículo.

  • Si el espacio de nombres de Event Hubs está en un clúster de Event Hubs, mueva el clúster dedicado a la región de destino antes de seguir los pasos de este artículo. También puede usar la plantilla de inicio rápido en GitHub para crear un clúster de Event Hubs. En la plantilla, quite la parte del espacio de nombres de JSON para crear solo el clúster.

  • Identifique todas las dependencias de recursos. En función de cómo haya implementado Event Hubs, es posible que los siguientes servicios necesiten implementarse en la región de destino:

  • Identifique todos los recursos dependientes. Event Hubs es un sistema de mensajería que permite a las aplicaciones publicar y suscribirse a mensajes. Considere si la aplicación en el destino requiere o no compatibilidad con la mensajería para el mismo conjunto de servicios dependientes que tenía en el destino de origen.

Tiempo de inactividad

Para comprender los posibles tiempos de inactividad, consulte Cloud Adoption Framework para Azure: Seleccione un método de reubicación.

Consideraciones sobre los puntos de conexión de servicio

Los puntos de conexión de servicio de red virtual para Azure Event Hubs restringen el acceso a una red virtual especificada. También permiten restringir el acceso a una lista de intervalos de direcciones IPv4 (protocolo de Internet, versión 4). Se deniega el acceso a cualquier usuario que se conecte a Event Hubs desde fuera de esos orígenes. Si los puntos de conexión de servicio se configuraron en la región de origen del recurso de Event Hubs, tendría que hacerse lo mismo en el destino.

Para una recreación correcta de Event Hubs en la región de destino, la red virtual y la subred deben crearse de antemano. En caso de que el traslado de estos dos recursos se realice con la herramienta Azure Resource Mover, los puntos de conexión de servicio no se configurarán automáticamente. Por lo tanto, deben configurarse manualmente. Puede hacerlo a través del Azure Portal, la CLI de Azure o Azure PowerShell.

Consideraciones del punto de conexión privado

Azure Private Link proporciona conectividad privada desde una red virtual a una plataforma como servicio (PaaS) de Azure, servicios de asociados de Microsoft o propiedad del cliente. Private Link simplifica la arquitectura de red y protege la conexión entre los puntos de conexión de Azure mediante la eliminación de la exposición de los datos a la red pública de Internet.

Para una recreación correcta de Event Hubs en la región de destino, la red virtual y la subred deben crearse antes de que se produzca la recreación real.

Preparación

Para empezar, exporte una plantilla de Resource Manager. Esta plantilla contiene la configuración que describe el espacio de nombres de Event Hubs.

  1. Inicie sesión en Azure Portal.

  2. Seleccione Todos los recursos y, después, seleccione su espacio de nombres de Event Hubs.

  3. En la página Espacio de nombres de Event Hubs, seleccione Exportar plantilla en Automatización en el menú izquierdo.

  4. Elija Descargar en la página Exportar plantilla.

    Captura de pantalla que muestra dónde descargar la plantilla de Resource Manager

  5. Busque el archivo ZIP que descargó desde el portal y descomprímalo en la carpeta que prefiera.

    Este archivo ZIP contiene los archivos .json que incluyen la plantilla y los scripts para implementar la plantilla.

Modificación de la plantilla

Modifique la plantilla cambiando el nombre y la región del espacio de nombres de Event Hubs.

  1. Seleccione Implementación de plantillas.

  2. En Azure Portal, seleccione Crear.

  3. Seleccione Cree su propia plantilla en el editor.

  4. Seleccione Cargar archivo y, después, siga las instrucciones para cargar el archivo template.json que descargó en la última sección.

  5. En el archivo template.json, asigne un nombre al espacio de nombres de Event Hubs estableciendo el valor predeterminado del nombre del espacio de nombres. En este ejemplo se establece el valor predeterminado del nombre del espacio de nombres de Event Hubs en namespace-name.

     "$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. Edite la propiedad location del archivo template.json en la región de destino. En este ejemplo, la región de destino se establece en centralus.

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

    Para obtener los códigos de ubicación de la región, consulte Ubicaciones de Azure. El código de una región es el nombre de la región sin espacios, Centro de EE. UU. = centralus.

  7. Quite los recursos de tipo punto de conexión privado en la plantilla.

     {
         "type": "Microsoft.EventHub/namespaces/privateEndpointConnections",
    
     }
    
  8. Si configuró un punto de conexión de servicio en Event Hubs, en la sección networkrulesets, en virtualNetworkRules, agregue la regla para la subred de destino. Asegúrese de que la marca ignoreMissingVnetServiceEndpoint_ está establecida en False, de modo que la IaC no pueda implementar Event Hubs si el punto de conexión de servicio no está configurado en la región de destino.

    _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. Seleccione Guardar para guardar la plantilla.

Volver a implementar

  1. En Azure Portal, haga clic en Crear un recurso.

  2. En Buscar en Marketplace, escriba implementación de plantillas y seleccione Template Deployment (implementar mediante plantillas personalizadas) .

  3. Seleccione Cree su propia plantilla en el editor.

  4. Seleccione Cargar archivo y siga las instrucciones para cargar el archivo template.json que modificó en la última sección.

  5. En la página Implementación personalizada, siga estos pasos:

    1. Seleccione una suscripción de Azure.
    2. Seleccione un grupo de recursos existente o cree uno. Si el espacio de nombres de origen se encontraba en un clúster de Event Hubs, seleccione el grupo de recursos que contiene el clúster en la región de destino.
    3. Seleccione la ubicación o región de destino. Si ha seleccionado un grupo de recursos existente, esta configuración es de solo lectura.
    4. En la sección CONFIGURACIÓN, lleve a cabo estos pasos:
      1. Escriba el nombre del nuevo espacio de nombres.

        Implementación de la plantilla de Resource Manager

      2. Si el espacio de nombres de origen se encontraba en un clúster de Event Hubs, escriba los nombres del grupo de recursos y del clúster de Event Hubs como parte del identificador externo.

        /subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<CLUSTER'S RESOURCE GROUP>/providers/Microsoft.EventHub/clusters/<CLUSTER NAME>
        
      3. Si Event Hubs del espacio de nombres usa una cuenta de Storage para capturar eventos, especifique el nombre del grupo de recursos y la cuenta de almacenamiento para el campo StorageAccounts_<original storage account name>_external.

        /subscriptions/0000000000-0000-0000-0000-0000000000000/resourceGroups/<STORAGE'S RESOURCE GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE ACCOUNT NAME>
        
    5. En la parte inferior de la página, seleccione Revisar y crear.
    6. En la página Revisar y crear, examine la configuración y, después, seleccione Crear.
  6. Las opciones de configuración de red (puntos de conexión privados) deben volver a configurarse en la nueva instancia de Event Hubs.

Descarte o limpieza

Después de la implementación, si quiere empezar de nuevo, puede eliminar el espacio de nombres de Event Hubs de destino y repetir los pasos descritos en las secciones Preparación y Traslado de este artículo.

Para confirmar los cambios y completar el traslado de un espacio de nombres de Event Hubs, elimine el espacio de nombres de Event Hubs de la región original. Asegúrese de que ha procesado todos los eventos en el espacio de nombres antes de eliminarlo.

Para eliminar un espacio de nombres de Event Hubs (de origen o destino) mediante Azure Portal:

  1. En la ventana de búsqueda de la parte superior de Azure Portal, escriba Event Hubs y seleccione Event Hubs en los resultados de la búsqueda. Verá los espacios de nombres de Event Hubs en una lista.

  2. Seleccione el espacio de nombres de destino que desea eliminar y, a continuación, seleccione Eliminar en la barra de herramientas.

    Captura de pantalla que muestra el botón Eliminar espacio de nombres:

  3. En la página Eliminar espacio de nombres, para confirmar la eliminación, escriba el nombre del espacio de nombres y, a continuación, seleccione Eliminar.

Pasos siguientes

En este procedimiento, ha aprendido a mover un espacio de nombres de Event Hubs de una región a otra.

Para obtener instrucciones sobre cómo mover un clúster de Event Hubs de una región a otra, consulte el artículo Reubicación de Event Hubs a otra región.

Para obtener más información sobre cómo trasladar recursos entre regiones y la recuperación ante desastres en Azure, consulte: