Realocar os 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 houver outros recursos no grupo de recursos do Azure que contém o namespace dos Hubs de Eventos, exporte o modelo no nível do grupo de recursos para que todos os recursos relacionados sejam movidos para a nova região em uma única etapa. Para saber como exportar um grupo de recursos para o modelo, consulte Mover recursos entre regiões(do grupo de recursos).
Pré-requisitos
Verifique se os serviços e recursos que sua conta usa têm suporte na região de destino.
Se você tiver o recurso de captura habilitado para hubs de eventos no namespace, mova o Armazenamento do Microsoft Azure ou as contas do Azure Data Lake Store Gen 2 antes de mover o namespace dos Hubs de Eventos. Também é possível mover o grupo de recursos que contém os namespaces de Armazenamento e de Hubs de Eventos para outra região com etapas semelhantes às deste artigo.
Se o namespace dos Hubs de Eventos estiver em um cluster dos Hubs de Eventos, mova o cluster dedicado para a região de destino antes de seguir as etapas deste artigo. Você também pode usar o modelo de início rápido no GitHub para criar um cluster dos Hubs de Eventos. No modelo, remova a parte de namespace do JSON para criar apenas o cluster.
Identifique todas as dependências de recursos. Dependendo de como você implantou os Hubs de Eventos, os seguintes serviços talvez precisem de implantação na região de destino:
- IP público
- Rede Virtual
- Namespace dos Hubs de Eventos
- Cluster de Hubs de Eventos
- Conta de armazenamento
Dica
Quando a Captura estiver habilitada, você poderá realocar uma Conta de Armazenamento da origem ou usar uma existente 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 o seu aplicativo no destino exige ou não suporte a mensagens para o mesmo conjunto de serviços dependentes que ele tinha no destino de origem.
Tempo de inatividade
Para entender os possíveis tempos de inatividade envolvidos, consulte Cloud Adoption Framework para Azure: selecionar um método de realocação.
Considerações para Pontos de Extremidade de Serviço
Os pontos de extremidade de serviço de rede virtual dos 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 da 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 foram configurados na região de origem do recurso dos Hubs de Eventos, o mesmo precisaria ser feito no destino um.
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 com antecedência. Caso a movimentação desses dois recursos esteja sendo realizada com a ferramenta do 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 Ponto de Extremidade Privado
O Link Privado do Azure fornece conectividade privada de uma rede virtual para a plataforma como serviço (PaaS) do Azure, propriedade do cliente ou serviços de parceiros da Microsoft. O Link Privado 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.
Preparar-se
Para começar, exporte um modelo do Resource Manager. O modelo contém as configurações que descrevem o namespace dos Hubs de Eventos.
Entre no portal do Azure.
Selecione Todos os recursos e selecione o namespace dos Hubs de Eventos.
Na página Namespace de Hubs de Eventos, selecione Exportar modelo em Automação no menu esquerdo.
Escolha Fazer download na página Exportar modelo.
Localize o arquivo .zip que você baixou do portal e descompacte-o na pasta desejada.
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 dos Hubs de Eventos.
Selecione Implantação de modelo.
No portal do Azure, selecione Criar.
Selecione Criar seu próprio modelo no editor.
Selecione Carregar arquivo e siga as instruções para carregar o arquivo template.json que você baixou na última seção.
No arquivo template.json, nomeie o namespace dos 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" }, },
Edite a propriedade de localização 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 os códigos de localização de região, confira Locais do Azure. O código de uma região é o nome da região em inglês sem espaços, por exemplo, EUA Central = centralus.
Remova os recursos do tipo de ponto de extremidade privado no modelo.
{ "type": "Microsoft.EventHub/namespaces/privateEndpointConnections", }
Se você configurou um ponto de extremidade de serviço nos seus Hubs de Eventos, na seção
networkrulesets
emvirtualNetworkRules
, adicione a regra para a sub-rede de destino. Verifique se o sinalizadorignoreMissingVnetServiceEndpoint
_ está definido comoFalse
, de modo que a IaC não implante os Hubs de Eventos caso o ponto de extremidade de 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 } },
Selecione Salvar para salvar o modelo.
Reimplantar
No portal do Azure, selecione Criar um recurso.
Em Pesquisar no Marketplace, digite implantação de modelo e selecione Implantação de modelo (implantar usando modelos personalizados) .
Selecione Criar seu próprio modelo no editor.
Selecione Carregar arquivo e siga as instruções para carregar o arquivo template.json que você modificou na última seção.
Na página Implantação personalizada, siga estas etapas:
- Selecione uma assinatura do Azure.
- Selecione um grupo de recursos existente ou crie um. Se o namespace de origem estava em um cluster dos Hubs de Eventos, selecione o grupo de recursos que contém o cluster na região de destino.
- Escolha o local ou a região de destino. Se você selecionou um grupo de recursos existente, essa configuração é somente leitura.
- Na seção CONFIGURAÇÕES, execute as seguintes etapas:
Insira o nome do novo namespace.
Se o namespace de origem estava em um cluster dos Hubs de Eventos, insira os nomes do grupo de recursos e do cluster dos Hubs de Eventos como parte da ID externa.
/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<CLUSTER'S RESOURCE GROUP>/providers/Microsoft.EventHub/clusters/<CLUSTER NAME>
Se os Hubs de Eventos do namespace usa uma conta de armazenamento para capturar eventos, especifique o nome do grupo de recursos e a conta de armazenamento no 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>
- Selecione Revisar + criar na parte inferior da página.
- Na página Examinar + criar, examine as configurações e selecione Criar.
As definições da configuração de rede (pontos de extremidade privados) precisam ser configuradas novamente nos novos Hubs de Eventos.
Descartar ou limpar
Após a implantação, caso queira começar novamente, você pode excluir o namespace dos 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 do namespace, exclua o namespace dos Hubs de Eventos na região original. Antes de excluir o namespace, verifique se você processou todos os eventos nele.
Para excluir um namespace dos Hubs de Eventos (de origem ou de destino) usando o portal do Azure:
Na janela de pesquisa na parte superior do portal do Azure, digite Hubs de Eventos e selecione Hubs de Eventos nos resultados da pesquisa. Será exibida a lista dos namespaces dos Hubs de Eventos.
Selecione o namespace de destino a ser excluído e selecione Excluir na barra de ferramentas.
Na página Excluir Namespace, confirme a exclusão digitando o nome do namespace e selecione Excluir.
Próximas etapas
Neste guia de instruções, você aprendeu a mover um namespace dos Hubs de Eventos de uma região para outra.
Para obter instruções sobre como mover um cluster dos Hubs de Eventos de uma região para outra, confira o artigo Realocar Hubs de Eventos para outra região.
Para saber mais sobre como mover recursos entre regiões e recuperação de desastres no Azure, confira: