Partilhar via


Realocar Hubs de Eventos do Azure para outra região

Este artigo mostra como copiar um namespace de Hubs de Eventos e definições de configuração para outra região.

Se você tiver outros recursos no grupo de recursos do Azure que contém o namespace Hubs de Eventos, convém exportar o modelo no nível do grupo de recursos para que todos os recursos relacionados possam ser movidos para a nova região em uma etapa. Para saber como exportar um grupo de recursos para o modelo, consulte Mover recursos entre regiões (do grupo de recursos).

Pré-requisitos

  • Garanta que os serviços e as funcionalidades que a conta utiliza são suportados na região de destino.

  • Se você tiver o recurso de captura habilitado para hubs de eventos no namespace, mova o Armazenamento do Azure ou as contas do Azure Data Lake Store Gen 2 antes de mover o namespace Hubs de Eventos. Você também pode mover o grupo de recursos que contém namespaces de Armazenamento e Hubs de Eventos para a outra região seguindo etapas semelhantes às descritas neste artigo.

  • Se o namespace Hubs de Eventos estiver em um cluster de Hubs de Eventos, mova o cluster dedicado para a região de destino antes de passar pelas etapas deste artigo. Você também pode usar o modelo de início rápido no GitHub para criar um cluster de Hubs de Eventos . No modelo, remova a parte do namespace do JSON para criar apenas o cluster.

  • Identifique todas as dependências de recursos. Dependendo de como você implantou Hubs de Eventos, os seguintes serviços podem precisar de implantação na região de destino:

  • Identificar todos os recursos dependentes. Os Hubs de Eventos são um sistema de mensagens que permite que os aplicativos publiquem e assinem mensagens. Considere se seu aplicativo no destino requer ou não suporte a mensagens para o mesmo conjunto de serviços dependentes que ele tinha no destino de origem.

Inatividade

Para entender os possíveis períodos de inatividade envolvidos, consulte Cloud Adoption Framework for Azure: Select a relocation method.

Considerações sobre pontos de extremidade de serviço

Os pontos de extremidade do serviço de rede virtual para Hubs de Eventos do Azure restringem o acesso a uma rede virtual especificada. Os pontos de extremidade também podem restringir o acesso a uma lista de intervalos de endereços IPv4 (protocolo Internet versão 4). Qualquer usuário que se conecte aos Hubs de Eventos de fora dessas fontes tem acesso negado. Se os pontos de extremidade de serviço fossem configurados na região de origem para o recurso de Hubs de Eventos, o mesmo precisaria ser feito no de destino.

Para uma recriação bem-sucedida dos Hubs de Eventos para a região de destino, a VNet e a Sub-rede devem ser criadas previamente. Caso a movimentação desses dois recursos esteja sendo realizada com a ferramenta Azure Resource Mover, os pontos de extremidade de serviço não serão configurados automaticamente. Portanto, eles precisam ser configurados manualmente, o que pode ser feito por meio do portal do Azure, da CLI do Azure ou do Azure PowerShell.

Considerações para o Private Endpoint

O Azure Private Link fornece conectividade privada de uma rede virtual para a plataforma Azure como serviço (PaaS), de propriedade do cliente ou serviços de parceiros da Microsoft. O Private Link simplifica a arquitetura de rede e protege a conexão entre pontos de extremidade no Azure, eliminando a exposição de dados à Internet pública.

Para uma recriação bem-sucedida dos Hubs de Eventos na região de destino, a VNet e a Sub-rede devem ser criadas antes que a recriação real ocorra.

Preparação

Para começar, exporte um modelo do Resource Manager. Este modelo contém configurações que descrevem seu namespace de Hubs de Eventos.

  1. Inicie sessão no portal do Azure.

  2. Selecione Todos os recursos e, em seguida, selecione o namespace Hubs de Eventos.

  3. Na página Namespace de Hubs de Eventos , selecione Exportar modelo em Automação no menu à esquerda.

  4. Escolha Download na página Exportar modelo .

    Captura de ecrã a mostrar onde transferir o modelo do Gestor de Recursos

  5. Localize o arquivo .zip que você baixou do portal e descompacte esse arquivo para uma pasta de sua escolha.

    Esse arquivo zip contém os arquivos .json que incluem o modelo e os scripts para implantar o modelo.

Modificar o modelo

Modifique o modelo alterando o nome e a região do namespace Hubs de Eventos.

  1. Selecione Implementação de modelo.

  2. No portal do Azure, selecione Criar.

  3. Selecione Crie o seu próprio modelo no editor.

  4. Selecione Carregar ficheiro e, em seguida, siga as instruções para carregar o ficheiro template.json que transferiu na última secção.

  5. No arquivo template.json, nomeie o namespace Hubs de Eventos definindo o valor padrão do nome do namespace. Este exemplo define o valor padrão do nome do namespace dos Hubs de Eventos como 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 a propriedade location no arquivo template.json para a região de destino. Este exemplo define a região de destino como 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 obter códigos de localização de região, consulte Localizações do Azure. O código de uma região é o nome da região sem espaços, Central US = centralus.

  7. Remova recursos do tipo ponto de extremidade privado no modelo.

     {
         "type": "Microsoft.EventHub/namespaces/privateEndpointConnections",
    
     }
    
  8. Se você configurou um ponto de extremidade de serviço em seus Hubs de networkrulesets Eventos, na seção virtualNetworkRules, em , adicione a regra para a sub-rede de destino. Verifique se o ignoreMissingVnetServiceEndpointsinalizador _ está definido como , para Falseque o IaC não consiga implantar os Hubs de Eventos caso o ponto de extremidade do serviço não esteja configurado na região 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. Selecione Salvar para salvar o modelo.

Voltar a implementar

  1. No portal do Azure, selecione Criar um recurso.

  2. Em Pesquisar no Marketplace, digite implantação de modelo e selecione Implantação de modelo (implantar usando modelos personalizados).

  3. Selecione Crie o seu próprio modelo no editor.

  4. Selecione Carregar arquivo e siga as instruções para carregar o arquivo template.json que você modificou na última seção.

  5. Na página Implantação personalizada, siga estas etapas:

    1. Selecione uma assinatura do Azure.
    2. Selecione um grupo de recursos existente ou crie um. Se o namespace de origem estiver em um cluster de Hubs de Eventos, selecione o grupo de recursos que contém cluster na região de destino.
    3. Selecione o local ou a região de destino. Se você selecionou um grupo de recursos existente, essa configuração será somente leitura.
    4. Na seção CONFIGURAÇÕES, execute as seguintes etapas:
      1. Insira o novo nome do namespace.

        Implantar modelo do Gerenciador de Recursos

      2. Se o namespace de origem estiver em um cluster de Hubs de Eventos, insira nomes de grupo de recursos e cluster de Hubs de Eventos como parte da ID externa.

        /subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<CLUSTER'S RESOURCE GROUP>/providers/Microsoft.EventHub/clusters/<CLUSTER NAME>
        
      3. Se os Hubs de Eventos em seu namespace usarem uma conta de Armazenamento para capturar eventos, especifique o nome do grupo de recursos e a conta de armazenamento para StorageAccounts_<original storage account name>_external o campo.

        /subscriptions/0000000000-0000-0000-0000-0000000000000/resourceGroups/<STORAGE'S RESOURCE GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE ACCOUNT NAME>
        
    5. Selecione Rever + criar na parte inferior da página.
    6. Na página Rever + criar, reveja as definições e, em seguida, selecione Criar.
  6. As definições de configuração de rede (pontos de extremidade privados) precisam ser reconfiguradas nos novos Hubs de Eventos.

Eliminar ou limpar

Após a implantação, se quiser começar de novo, você pode excluir o namespace Hubs de Eventos de destino e repetir as etapas descritas nas seções Preparar e Mover deste artigo.

Para confirmar as alterações e concluir a movimentação de um namespace de Hubs de Eventos, exclua o namespace de Hubs de Eventos na região original. Certifique-se de que você processou todos os eventos no namespace antes de excluir o namespace.

Para excluir um namespace de Hubs de Eventos (origem ou destino) usando o portal do Azure:

  1. Na janela de pesquisa na parte superior do portal do Azure, digite Hubs de Eventos e selecione Hubs de Eventos nos resultados da pesquisa. Você vê os namespaces dos Hubs de Eventos em uma lista.

  2. Selecione o namespace de destino a ser excluído e selecione Excluir na barra de ferramentas.

    Captura de tela mostrando o botão Excluir namespace -

  3. Na página Excluir Namespace, confirme a exclusão digitando o nome do namespace e selecione Excluir.

Próximos passos

Neste tutorial, você aprendeu como mover um namespace de Hubs de Eventos de uma região para outra.

Para obter instruções sobre como mover um cluster de Hubs de Eventos de uma região para outra, consulte o artigo Relocalizar Hubs de Eventos para outra região .

Para saber mais sobre como mover recursos entre regiões e recuperação de desastres no Azure, consulte: