Partilhar via


Criar tarefas de replicação para recursos do Azure usando os Aplicativos Lógicos do Azure (visualização)

Importante

Esta funcionalidade está em pré-visualização e está sujeita aos Termos de Utilização Suplementares para Pré-visualizações do Microsoft Azure.

Embora a disponibilidade e a confiabilidade máximas sejam as principais prioridades operacionais para os serviços do Azure, ainda existem muitas maneiras de interromper a comunicação devido a problemas de rede ou resolução de nomes, erros ou falta de resposta temporária. Essas condições não são "desastrosas", de modo que você queira abandonar completamente a implantação regional, como faria em uma situação de recuperação de desastres. No entanto, o cenário de negócios para alguns aplicativos pode ser afetado por eventos de disponibilidade que não duram mais do que alguns minutos ou até segundos.

Para reduzir o efeito que eventos imprevisíveis podem ter em seus recursos do Azure em uma região do Azure, você pode replicar o conteúdo nesses recursos de uma região para outra para manter a continuidade dos negócios. No Azure, você pode criar uma tarefa de replicação que move os dados, eventos ou mensagens de uma origem em uma região para um destino em outra região. Dessa forma, você pode ter o destino prontamente disponível se a fonte ficar offline e o alvo tiver que assumir o controle.

Nota

Você também pode usar tarefas de replicação para mover conteúdo entre entidades na mesma região, mas se toda a região ficar indisponível ou sofrer interrupções, tanto a origem quanto o destino serão afetados.

Este artigo fornece uma visão geral sobre tarefas de replicação com tecnologia de Aplicativos Lógicos do Azure e mostra como criar um exemplo de tarefa de replicação para filas do Barramento de Serviço do Azure. Se você é novo em aplicativos lógicos e fluxos de trabalho, consulte O que são Aplicativos Lógicos do Azure e Locatário Único versus Multilocatário nos Aplicativos Lógicos do Azure.

O que é uma tarefa de replicação?

Geralmente, uma tarefa de replicação recebe dados, eventos ou mensagens de uma fonte, move esse conteúdo para um destino e, em seguida, exclui esse conteúdo da origem, exceto quando a origem é uma entidade de Hubs de Eventos. A tarefa de replicação geralmente move o conteúdo inalterado, mas as tarefas de replicação desenvolvidas pelos Aplicativos Lógicos do Azure também adicionam propriedades de replicação. Se os protocolos de origem e de destino forem diferentes, essas tarefas também executarão mapeamentos entre estruturas de metadados. As tarefas de replicação são sem monitoração de estado, o que significa que elas não compartilham estados ou outros efeitos colaterais em execuções paralelas ou sequenciais de uma tarefa.

Quando você usa os modelos de tarefa de replicação disponíveis, cada tarefa de replicação criada tem um fluxo de trabalho sem estado subjacente em um recurso de Aplicativo Lógico (Padrão), que pode incluir vários fluxos de trabalho para tarefas de replicação. Esse recurso é hospedado em Aplicativos Lógicos do Azure de locatário único, que é um ambiente de execução escalável e confiável para configurar e executar aplicativos sem servidor, incluindo tarefas de replicação e federação. O tempo de execução dos Aplicativos Lógicos do Azure de locatário único também usa o modelo de extensibilidade do Azure Functions e é hospedado como uma extensão no tempo de execução do Azure Functions. Esse design fornece portabilidade, flexibilidade e mais desempenho para fluxos de trabalho de aplicativos lógicos, além de outros recursos e benefícios herdados da plataforma Azure Functions e do ecossistema do Serviço de Aplicativo do Azure.

Para obter mais informações sobre replicação e federação, consulte a seguinte documentação:

Modelos de tarefas de replicação

Atualmente, os modelos de tarefa de replicação estão disponíveis para os Hubs de Eventos do Azure e o Barramento de Serviço do Azure. A tabela a seguir lista os modelos de tarefa de replicação atualmente disponíveis nesta visualização:

Tipo de recurso Origem e destino da replicação
Namespace dos Hubs de Eventos do Azure - Instância de Hubs de Eventos para instância de Hubs de Eventos
- Instância de Hubs de Eventos para fila do Service Bus
- Instância de Hubs de Eventos para o tópico do Service Bus
Namespace do Barramento de Serviço do Azure - Fila do Barramento de Serviço para fila do Barramento de Serviço
- Tópico Fila do Barramento de Serviço para o Barramento de Serviço
- Tópico do Service Bus para o tópico do Service Bus
- Fila do Barramento de Serviço para instância de Hubs de Eventos
- Tópico do Service Bus para a fila do Service Bus
- Tópico do Service Bus para instância de Hubs de Eventos

Importante: Quando uma fila é a origem, uma tarefa de replicação não copia mensagens, mas as move da origem para o destino e as exclui da origem.

Para espelhar mensagens, use um tópico como fonte em que a assinatura "principal" atue como um ponto de extremidade de fila. Dessa forma, o alvo recebe uma cópia de cada mensagem da fonte.

Para encaminhar mensagens entre diferentes regiões, você pode criar uma fila onde as mensagens são enviadas de um aplicativo. A tarefa de replicação transfere mensagens dessa fila para uma fila de destino em um namespace que está em outra região. Você também pode usar uma assinatura de tópico como a entidade que atua como a fila de transferência. Para obter mais informações, consulte Topologia de replicação para ServiceBusCopy.

Topologia e fluxo de trabalho de replicação

Para ajudá-lo a visualizar como funciona uma tarefa de replicação com tecnologia dos Aplicativos Lógicos do Azure (Padrão), os diagramas a seguir mostram a estrutura da tarefa de replicação e o fluxo de trabalho para instâncias de Hubs de Eventos e filas do Barramento de Serviço.

Topologia de replicação para Hubs de Eventos

O diagrama a seguir mostra a topologia e o fluxo de trabalho da tarefa de replicação entre instâncias de Hubs de Eventos:

Diagrama conceitual mostrando topologia para tarefa de replicação alimentada por um fluxo de trabalho

Para obter informações sobre replicação e federação nos Hubs de Eventos do Azure, consulte a seguinte documentação:

Topologia de replicação para Service Bus

O diagrama a seguir mostra a topologia e o fluxo de trabalho da tarefa de replicação entre filas do Service Bus:

Diagrama conceitual mostrando topologia para tarefa de replicação alimentada pelo fluxo de trabalho

Para obter informações sobre replicação e federação no Barramento de Serviço do Azure, consulte a seguinte documentação:

Mapeamentos de metadados e propriedades

Para Hubs de Eventos, os seguintes itens obtidos do namespace Hubs de Eventos de origem são substituídos por novos valores atribuídos ao serviço no namespace Hubs de Eventos de destino: metadados atribuídos ao serviço de um evento, tempo de fila original, número de sequência e deslocamento. No entanto, para funções auxiliares e as tarefas de replicação nos exemplos fornecidos pelo Azure, os valores originais são preservados nas propriedades do usuário: repl-enqueue-time (ISO8601 string), repl-sequencee repl-offset. Essas propriedades têm o string tipo e contêm o valor stringified das respetivas propriedades originais. Se o evento for encaminhado várias vezes, os metadados atribuídos ao serviço da origem imediata serão acrescentados a quaisquer propriedades existentes, com valores separados por ponto-e-vírgula. Para obter mais informações, consulte Metadados atribuídos ao serviço - Padrões de tarefas de replicação de eventos.

Para o Service Bus, os seguintes itens obtidos da fila ou tópico do Service Bus de origem são substituídos por novos valores atribuídos ao serviço na fila ou tópico do Service Bus de destino: metadados atribuídos ao serviço de uma mensagem, hora da fila original e número de sequência. No entanto, para as tarefas de replicação padrão nos exemplos fornecidos pelo Azure, os valores originais são preservados nas propriedades do usuário: repl-enqueue-time (ISO8601 string) e repl-sequence. Essas propriedades têm o string tipo e contêm o valor stringified das respetivas propriedades originais. Se a mensagem for encaminhada várias vezes, os metadados atribuídos ao serviço da origem imediata serão acrescentados a quaisquer propriedades existentes, com valores separados por ponto-e-vírgula. Para obter mais informações, consulte Metadados atribuídos ao serviço - Padrões de tarefas de replicação de mensagens.

Quando uma tarefa é replicada do Service Bus para Hubs de Eventos, a tarefa mapeia apenas a User Properties propriedade para a Properties propriedade. No entanto, quando a tarefa é replicada de Hubs de Eventos para o Service Bus, a tarefa mapeia as seguintes propriedades:

Dos Hubs de Eventos Para o Service Bus
Tipo de conteúdo Tipo de conteúdo
CorrelationId CorrelationId
MessageId MessageId
PartitionKey PartitionKey SessionId
Propriedades Propriedades do Utilizador
ReplyTo ReplyTo
ReplyToGroupName ReplyToSessionId
Assunto Etiqueta
Para Para

Preservação da ordem

Para Hubs de Eventos, a replicação entre o mesmo número de partições cria clones 1:1 sem alterações nos eventos, mas também pode incluir duplicatas. No entanto, a replicação entre diferentes números de partições, apenas a ordem relativa dos eventos é preservada com base na chave de partição, mas também pode incluir duplicatas. Para obter mais informações, consulte Streams e preservação de pedidos.

Para o Service Bus, você deve habilitar sessões para que sequências de mensagens com a mesma ID de sessão recuperada da origem sejam enviadas para a fila ou tópico de destino como um lote na sequência original e com a mesma ID de sessão. Para obter mais informações, consulte Sequências e preservação de pedidos.

Importante

As tarefas de replicação não controlam quais mensagens já foram processadas quando a origem sofre um evento com interrupções. Para evitar o reprocessamento de mensagens já processadas, você precisa configurar uma maneira de rastrear as mensagens já processadas para que o processamento seja retomado apenas com as mensagens não processadas.

Por exemplo, você pode configurar um banco de dados que armazena o estado de processamento para cada mensagem. Quando uma mensagem chega, verifique o estado da mensagem e processe-a apenas quando a mensagem não for processada. Dessa forma, nenhum processamento acontece para uma mensagem já processada.

Esse padrão demonstra o conceito de idempotência em que repetir uma ação em uma entrada produz o mesmo resultado sem outros efeitos colaterais ou não altera o valor da entrada.

Para saber mais sobre a federação multissite e multirregião para serviços do Azure onde você pode criar tarefas de replicação, consulte a seguinte documentação:

Preços

Por baixo, uma tarefa de replicação é alimentada por um fluxo de trabalho sem estado em um recurso de Aplicativo Lógico (Padrão) hospedado em Aplicativos Lógicos do Azure de locatário único. Quando você cria essa tarefa de replicação, as cobranças começam a ser cobradas imediatamente. O uso, a medição, o faturamento e o modelo de preços seguem os níveis de preço do plano de hospedagem padrão e do plano padrão.

Com base no número de eventos que os Hubs de Eventos recebem ou mensagens que o Service Bus manipula, seu plano de hospedagem pode aumentar ou diminuir a escala para manter o uso mínimo de vCPU e baixa latência durante a replicação ativa. Esse comportamento requer que, ao criar um recurso de aplicativo lógico para usar em sua tarefa de replicação, escolha a camada de preço do plano Standard apropriada para que os Aplicativos Lógicos do Azure não acelerem ou comecem a maximizar o uso da CPU e ainda possam garantir velocidade de replicação rápida.

Nota

Se seu aplicativo começar com uma instância do plano WS1 e, em seguida, expandir para duas instâncias, o custo será o dobro do custo do WS1, supondo que os planos sejam executados o dia todo. Se você dimensionar seu aplicativo para o plano WS2 e usar uma instância, o custo será efetivamente o mesmo que duas instâncias do plano WS1. Da mesma forma, se você dimensionar seu aplicativo para o plano WS3 e usar uma instância, o custo será efetivamente o mesmo que duas instâncias de plano WS2 ou quatro instâncias de plano WS1.

Os exemplos a seguir ilustram a camada de preço do plano de hospedagem e as opções de configuração que fornecem a melhor taxa de transferência e o melhor custo para cenários específicos de tarefas de replicação, com base no fato de o cenário ser Hubs de Eventos ou Service Bus e vários valores de configuração.

Nota

Os exemplos nas seções a seguir usam 800 como o valor padrão para a contagem de pré-busca, o tamanho máximo do lote de eventos para Hubs de Eventos e a contagem máxima de mensagens para o Service Bus, supondo que o tamanho do evento ou da mensagem seja de 1 KB. Com base no tamanho do evento, convém ajustar a contagem de pré-busca, o tamanho máximo do lote de eventos ou a contagem máxima de mensagens. Por exemplo, se o tamanho do evento ou da mensagem for superior a 1 KB, convém reduzir os valores da contagem de pré-busca e o tamanho máximo do lote de eventos ou da contagem de mensagens de 800.

Expansão dos Hubs de Eventos

Os exemplos a seguir ilustram a camada de preços do plano de hospedagem e as opções de configuração para uma tarefa de replicação entre dois namespaces de Hubs de Eventos na mesma região, com base no número de partições, no número de eventos por segundo e em outros valores de configuração.

Os exemplos nesta seção usam 800 como o valor padrão para a contagem de pré-busca e o tamanho máximo do lote de eventos, supondo que o tamanho do evento seja de 1 KB. Com base nos tamanhos dos eventos, convém ajustar a contagem de pré-busca e o tamanho máximo do lote de eventos. Por exemplo, se o tamanho do evento for superior a 1 KB, convém reduzir os valores da contagem de pré-busca e do tamanho máximo do lote de eventos de 800.

Escalão de preço Contagem de partições Eventos por segundo Máximo de rajadas* Instâncias sempre prontas* Contagem de pré-busca* Tamanho máximo do lote de eventos*
WS1 1 1000 1 1 800 800
WS1 2 2000 1 1 800 800
WS2 4 4000 2 1 800 800
WS2 8 8000 2 1 800 800
WS3 16 16000 2 1 800 800
WS3 32 32000 3 1 800 800

* Para obter mais informações sobre os valores que você pode alterar para cada nível de preço, consulte a tabela a seguir:

valor Description
Rajadas máximas O número máximo de trabalhadores elásticos a serem dimensionados sob carga. Se seu aplicativo subjacente exigir instâncias além das instâncias sempre prontas na próxima linha da tabela, seu aplicativo poderá continuar a expandir até que o número de instâncias atinja o limite máximo de intermitência. Para alterar esse valor, consulte Editar configurações de expansão do plano de hospedagem mais adiante neste artigo.

Observação: todas as instâncias além do tamanho do plano são cobradas somente quando estão em execução e alocadas a você por segundo. A plataforma faz o melhor esforço para expandir seu aplicativo para o limite máximo definido.

Dica: como recomendação, selecione um valor máximo maior do que o necessário para que a plataforma possa ser dimensionada para lidar com uma carga maior, se necessário, já que as instâncias não utilizadas não são cobradas.

Para obter mais informações, consulte a seguinte documentação, pois o plano Workflow Standard compartilha alguns aspetos com o plano Premium do Azure Functions:

- Configurações de plano e SKU - Plano Premium do Azure Functions
- O que é cloud bursting?

Instâncias sempre prontas O número mínimo de instâncias que estão sempre prontas e quentes para hospedar seu aplicativo. O número mínimo é sempre 1. Para alterar esse valor, consulte Editar configurações de expansão do plano de hospedagem mais adiante neste artigo.

Observação: todas as instâncias além do tamanho do plano são cobradas , estejam ou não em execução quando alocadas a você.

Para obter mais informações, revise a seguinte documentação, pois o plano Workflow Standard compartilha alguns aspetos com o plano Premium do Azure Functions: Instâncias sempre prontas - plano Premium do Azure Functions.

Contagem de pré-busca O valor padrão para AzureFunctionsJobHost__extensions__eventHubs__eventProcessorOptions__prefetchCount a configuração do aplicativo em seu recurso de aplicativo lógico que determina a contagem de pré-busca usada pela classe subjacente EventProcessorHost . Para adicionar ou especificar um valor diferente para esta configuração de aplicativo, consulte Gerenciar configurações do aplicativo - local.settings.json, por exemplo:

- Designação: AzureFunctionsJobHost__extensions__eventHubs__eventProcessorOptions__prefetchCount
- Valor: 800 (sem limite máximo)

Para obter mais informações sobre a prefetchCount propriedade, consulte a seguinte documentação:

- Configurações de host.json - Gatilho e associações de Hubs de Eventos do Azure para o Azure Functions
- EventProcessorOptions.PrefetchCount propriedade
- Equilibre a carga da partição em várias instâncias do seu aplicativo.
- Host do processador de eventos
- EventProcessorHost Classe

Tamanho máximo do lote de eventos O valor padrão para a configuração do AzureFunctionsJobHost__extensions__eventHubs__eventProcessorOptions__maxBatchSize aplicativo em seu recurso de aplicativo lógico que determina a contagem máxima de eventos recebidos por cada loop de recebimento. Para adicionar ou especificar um valor diferente para esta configuração de aplicativo, consulte Gerenciar configurações do aplicativo - local.settings.json, por exemplo:

- Designação: AzureFunctionsJobHost__extensions__eventHubs__eventProcessorOptions__maxBatchSize
- Valor: 800 (sem limite máximo)

Para obter mais informações sobre a maxBatchSize propriedade, consulte a seguinte documentação:

- Configurações de host.json - Gatilho e associações de Hubs de Eventos do Azure para o Azure Functions
- EventProcessorOptions.MaxBatchSize propriedade
- Host do processador de eventos

Expansão do Barramento de Serviço

Os exemplos a seguir ilustram a camada de preço do plano de hospedagem e as opções de configuração para uma tarefa de replicação entre dois namespaces do Service Bus na mesma região, com base no número de mensagens por segundo e em outros valores de configuração.

Os exemplos nesta seção usam 800 como o valor padrão para a contagem de pré-busca e a contagem máxima de mensagens, supondo que o tamanho da mensagem seja de 1 KB. Com base nos tamanhos das mensagens, convém ajustar a contagem de pré-busca e a contagem máxima de mensagens. Por exemplo, se o tamanho da mensagem for superior a 1 KB, convém reduzir os valores da contagem de pré-busca e da contagem máxima de mensagens de 800.

Escalão de preço Mensagens por segundo Máximo de rajadas* Instâncias sempre prontas* Contagem de pré-busca* Contagem máxima de mensagens*
WS1 2000 1 1 800 800
WS2 2500 1 1 800 800
WS3 3500 1 1 800 800

* Para obter mais informações sobre os valores que você pode alterar para cada nível de preço, consulte a tabela a seguir:

valor Description
Rajadas máximas O número máximo de trabalhadores elásticos a serem dimensionados sob carga. Se seu aplicativo subjacente exigir instâncias além das instâncias sempre prontas na próxima linha da tabela, seu aplicativo poderá continuar a expandir até que o número de instâncias atinja o limite máximo de intermitência. Para alterar esse valor, consulte Editar configurações de expansão do plano de hospedagem mais adiante neste artigo.

Observação: todas as instâncias além do tamanho do plano são cobradas somente quando estão em execução e alocadas a você por segundo. A plataforma faz o melhor esforço para expandir seu aplicativo para o limite máximo definido.

Dica: como recomendação, selecione um valor máximo maior do que o necessário para que a plataforma possa ser dimensionada para lidar com uma carga maior, se necessário, já que as instâncias não utilizadas não são cobradas.

Para obter mais informações, consulte a seguinte documentação, pois o plano Workflow Standard compartilha alguns aspetos com o plano Premium do Azure Functions:

- Configurações de plano e SKU - Plano Premium do Azure Functions
- O que é cloud bursting?

Instâncias sempre prontas O número mínimo de instâncias que estão sempre prontas e quentes para hospedar seu aplicativo. O número mínimo é sempre 1. Para alterar esse valor, consulte Editar configurações de expansão do plano de hospedagem mais adiante neste artigo.

Observação: todas as instâncias além do tamanho do plano são cobradas , estejam ou não em execução quando alocadas a você.

Para obter mais informações, revise a seguinte documentação, pois o plano Workflow Standard compartilha alguns aspetos com o plano Premium do Azure Functions: Instâncias sempre prontas - plano Premium do Azure Functions.

Contagem de pré-busca O valor padrão para AzureFunctionsJobHost__extensions__serviceBus__prefetchCount a configuração do aplicativo em seu recurso de aplicativo lógico que determina a contagem de pré-busca usada pela classe subjacente ServiceBusProcessor . Para adicionar ou especificar um valor diferente para esta configuração de aplicativo, consulte Gerenciar configurações do aplicativo - local.settings.json, por exemplo:

- Designação: AzureFunctionsJobHost__extensions__eventHubs__eventProcessorOptions__prefetchCount
- Valor: 800 (sem limite máximo)

Para obter mais informações sobre a prefetchCount propriedade, consulte a seguinte documentação:

- Configurações de host.json - Associações do Barramento de Serviço do Azure para o Azure Functions
- ServiceBusProcessor.PrefetchCount propriedade
- ServiceBusProcessor Classe

Contagem máxima de mensagens O valor padrão para a configuração do AzureFunctionsJobHost__extensions__serviceBus__batchOptions__maxMessageCount aplicativo no recurso do aplicativo lógico que determina o número máximo de mensagens a serem enviadas quando acionadas. Para adicionar ou especificar um valor diferente para esta configuração de aplicativo, consulte Gerenciar configurações do aplicativo - local.settings.json, por exemplo:

- Designação: AzureFunctionsJobHost__extensions__serviceBus__batchOptions__maxMessageCount
- Valor: 800 (sem limite máximo)

Para obter mais informações sobre a maxMessageCount propriedade, consulte a seguinte documentação: Configurações de host.json - Associações de Hubs de Eventos do Azure para o Azure Functions.

Pré-requisitos

  • Uma conta e subscrição do Azure. Se não tiver uma subscrição, inscreva-se numa conta do Azure gratuita.

  • Os recursos ou entidades de origem e destino, que devem existir em diferentes regiões do Azure para que você possa testar o cenário de failover de recuperação de desastres geográficos. Essas entidades podem variar com base no modelo de tarefa que você deseja usar. O exemplo neste artigo usa duas filas do Barramento de Serviço, que estão localizadas em namespaces e regiões do Azure diferentes.

  • Um recurso do Aplicativo Lógico (Padrão) que você pode reutilizar ao criar a tarefa de replicação. Dessa forma, você pode personalizar esse recurso especificamente para sua tarefa de replicação, por exemplo, escolhendo o plano de hospedagem e a camada de preços com base nas necessidades do cenário de replicação, como capacidade, taxa de transferência e dimensionamento. Embora seja possível criar esse recurso ao criar a tarefa de replicação, não é possível alterar a região, o plano de hospedagem e a camada de preço. A lista a seguir fornece outros motivos e práticas recomendadas para um recurso de aplicativo lógico criado anteriormente:

    • Você pode criar esse recurso de aplicativo lógico em uma região diferente das entidades de origem e de destino em sua tarefa de replicação.

      Atualmente, essa orientação é fornecida devido à integração nativa da tarefa de replicação nos recursos do Azure. Quando você cria uma tarefa de replicação entre entidades e opta por criar um novo recurso de aplicativo lógico em vez de usar um existente, o novo aplicativo lógico é criado na mesma região que a entidade de origem. Se a região de origem ficar indisponível, a tarefa de replicação também não poderá funcionar. Em um cenário de failover, a tarefa também não pode começar a ler dados da nova origem, anteriormente a entidade de destino, que é o que o padrão de replicação ativo-passivo tenta alcançar.

    • Você pode personalizar esse recurso de aplicativo lógico com antecedência escolhendo o plano de hospedagem e a camada de preço, em vez de usar os atributos padrão. Dessa forma, sua tarefa de replicação pode processar mais eventos ou mensagens por segundo para uma replicação mais rápida. Se você criar esse recurso ao criar a tarefa de replicação, esses atributos padrão serão corrigidos.

    • Você pode certificar-se de que esse recurso de aplicativo lógico contém apenas fluxos de trabalho de tarefas de replicação, especialmente se quiser seguir o padrão de replicação ativo-passivo. Quando você usa um aplicativo lógico existente para criar sua tarefa de replicação, essa opção adiciona a tarefa (fluxo de trabalho sem monitoração de estado) a esse recurso de aplicativo lógico.

    Para obter mais informações, consulte Criar um fluxo de trabalho de integração com Aplicativos Lógicos do Azure de locatário único (Padrão) no portal do Azure.

  • Opcional: A cadeia de conexão para o namespace de destino. Essa opção permite que o destino exista em uma assinatura diferente, para que você possa configurar a replicação entre assinaturas.

    Para localizar a cadeia de conexão para a entidade de destino, execute estas etapas:

    1. No portal do Azure, vá para o namespace de destino.

    2. No menu de navegação do namespace, em Configurações, selecione Políticas de acesso compartilhado.

    3. No painel Políticas de acesso compartilhado que é aberto, em Política, selecione RootManageSharedAccessKey.

    4. No painel SAS Policy: RootManageSharedAccessKey que é aberto, copie o valor Cadeia de Conexão Primária.

    5. Salve a cadeia de conexão em algum lugar para que você possa usá-la posteriormente para se conectar ao namespace de destino.

Convenções de nomenclatura

Considere cuidadosamente a estratégia de nomenclatura usada para suas tarefas ou entidades de replicação, caso ainda não as tenha criado. Certifique-se de que os nomes são facilmente identificáveis e diferenciados. Por exemplo, se você estiver trabalhando com namespace de Hubs de Eventos, a tarefa de replicação será replicada de todas as instâncias de Hubs de Eventos no namespace de origem. Se você estiver trabalhando com filas do Service Bus, a tabela a seguir fornece um exemplo para nomear as entidades e a tarefa de replicação:

Nome da fonte Exemplo Aplicativo de replicação Exemplo Nome do destino Exemplo
Espaço de nomes: <name>-sb-<region> fabrikam-sb-weu Aplicativo lógico: <name-source-region-target-region> fabrikam-rep-weu-wus Espaço de nomes: <name>-sb-<region> fabrikam-sb-wus
Fila: <name> jobs-transfer Fluxo de trabalho: <name> jobs-transfer-workflow Fila: <name> jobs

Criar uma tarefa de replicação

Este exemplo mostra como criar uma tarefa de replicação para filas do Service Bus.

  1. No portal do Azure, localize o namespace do Service Bus que você deseja usar como origem.

  2. No menu de navegação do namespace, na seção Automação, selecione Tarefas (visualização).

    Captura de tela mostrando o portal do Azure e o menu de namespace do Barramento de Serviço do Azure com

  3. No painel Tarefas, selecione Adicionar uma tarefa para que você possa selecionar um modelo de tarefa.

    Captura de ecrã a mostrar o painel

  4. No painel Adicionar uma tarefa, em Selecionar um modelo, no modelo para a tarefa de replicação que você deseja criar, selecione Selecionar. Se a próxima página não aparecer, selecione Avançar: Autenticar.

    Este exemplo continua selecionando o modelo de tarefa Replicar da fila do Service Bus para a fila , que replica o conteúdo entre as filas do Service Bus.

    Captura de tela mostrando o painel

  5. Na guia Autenticar, na seção Conexões, selecione Criar para cada conexão que aparece na tarefa para que você possa fornecer credenciais de autenticação para todas as conexões. Os tipos de conexões em cada tarefa variam de acordo com a tarefa.

    Este exemplo mostra o prompt para criar a conexão com o namespace do Service Bus de destino onde a fila de destino existe. A conexão existe para o namespace do Service Bus de origem.

    Captura de tela mostrando a opção

  6. Forneça as informações necessárias sobre o destino e selecione Criar.

    Neste exemplo, forneça um nome para exibição para a conexão e selecione o namespace do Service Bus onde a fila de destino existe.

    Captura de tela mostrando o painel

    Gorjeta

    Você também pode criar a conexão com uma cadeia de conexão. Essa opção permite ter o destino em uma assinatura diferente, para que você possa configurar a replicação entre assinaturas. O destino, ou origem com base em onde você começou a criar a tarefa de replicação, é configurado dinamicamente para que você só precise conectar o destino. Para usar uma cadeia de conexão, use as seguintes etapas:

    1. No painel Conectar, selecione Conectar via cadeia de conexão.

    2. Na caixa Cadeia de Conexão , insira a cadeia de conexão para o namespace de destino.

    O exemplo a seguir mostra a conexão criada com êxito:

    Captura de tela mostrando o painel

  7. Depois de concluir todas as conexões, selecione Avançar: Configurar.

  8. Na guia Configurar, forneça um nome para a tarefa e quaisquer outras informações necessárias para ela.

    Nota

    Não é possível alterar o nome da tarefa após a criação, portanto, considere um nome que ainda se aplique se você editar o fluxo de trabalho subjacente. As alterações feitas no fluxo de trabalho subjacente aplicam-se somente à tarefa que você criou, não ao modelo de tarefa.

    Por exemplo, se você nomear sua tarefa fabrikam-rep-weu-wus, mas depois editar o fluxo de trabalho subjacente para uma finalidade diferente, não poderá alterar o nome da tarefa para corresponder.

    1. Para adicionar o fluxo de trabalho de tarefas a um recurso existente do Aplicativo Lógico (Padrão), na lista Aplicativo Lógico, selecione o aplicativo lógico existente. Para criar um novo recurso do Aplicativo Lógico (Padrão), na lista Aplicativo Lógico, selecione Criar novo e forneça o nome a ser usado para o novo aplicativo lógico.

      Nota

      Se você criar um novo recurso de aplicativo lógico durante a criação da tarefa de replicação, o aplicativo lógico será criado na mesma região da entidade de origem, o que será problemático se a região de origem ficar indisponível e não funcionar em um cenário de failover. A prática recomendada é criar um recurso de Aplicativo Lógico (Padrão) em uma região diferente da sua origem. Ao criar a tarefa de replicação, selecione o aplicativo lógico existente e adicione o fluxo de trabalho sem estado subjacente ao aplicativo lógico existente. Para obter mais informações, consulte os Pré-requisitos.

    2. Quando terminar, selecione Rever + criar.

    Captura de tela mostrando o painel

  9. Na guia Revisar + criar , confirme os recursos do Azure que a tarefa de replicação requer para operação.

    • Se você optar por criar um novo recurso de aplicativo lógico para a tarefa de replicação, o painel mostrará os recursos necessários do Azure que a tarefa de replicação criará para operar. Por exemplo, esses recursos incluem uma conta de Armazenamento do Azure que contém informações de configuração para o recurso de aplicativo lógico, fluxo de trabalho e outras operações de tempo de execução. Por exemplo, com Hubs de Eventos, essa conta de armazenamento contém informações de ponto de verificação e a posição ou deslocamento no fluxo onde a entidade de origem para se a região de origem for interrompida ou ficar indisponível.

      O exemplo a seguir mostra a guia Review + create se você optar por criar um novo aplicativo lógico:

      Captura de tela mostrando o painel

    • Se você optar por reutilizar um recurso de aplicativo lógico existente para a tarefa de replicação, o painel mostrará os recursos do Azure que a replicação reutilizará para operar.

      O exemplo a seguir mostra a guia Revisão + criação se você optar por reutilizar um aplicativo lógico existente:

      Captura de ecrã a mostrar o painel

    Nota

    Se sua origem, destino ou ambos estiverem atrás de uma rede virtual, você precisará configurar permissões e acesso depois de criar a tarefa. Nesse cenário, permissões e acesso são necessários para que o fluxo de trabalho do aplicativo lógico possa executar a tarefa de replicação.

  10. Quando estiver pronto, selecione Criar.

    A tarefa que você criou, que está automaticamente ativa e em execução, agora aparece na lista Tarefas .

    Gorjeta

    Se a tarefa não aparecer imediatamente, tente atualizar a lista de tarefas ou aguarde um pouco antes de atualizar. Na barra de ferramentas, selecione Atualizar.

    Captura de ecrã a mostrar o painel

  11. Se seus recursos estiverem atrás de uma rede virtual, lembre-se de configurar permissões para o recurso do aplicativo lógico e o fluxo de trabalho para acessar esses recursos.

Configurar política de repetição

Para evitar a perda de dados durante um evento de disponibilidade em ambos os lados de uma relação de replicação, você precisa configurar a política de repetição para robustez. Para configurar a política de repetição para uma tarefa de replicação, revise a documentação sobre políticas de repetição nos Aplicativos Lógicos do Azure e as etapas para editar o fluxo de trabalho subjacente.

Rever o histórico de tarefas

Este exemplo mostra como exibir o histórico de execução do fluxo de trabalho de uma tarefa junto com seus status, entradas, saídas e outras informações e continua usando o exemplo para uma tarefa de replicação de fila do Service Bus.

  1. No portal do Azure, localize o recurso ou entidade do Azure que tem o histórico de tarefas que pretende rever.

    Neste exemplo, esse recurso é um namespace do Service Bus.

  2. No menu de navegação de recursos, em Configurações, na seção Automação, selecione Tarefas (visualização).

  3. No painel Tarefas, localize a tarefa que pretende rever. Na coluna Execuções dessa tarefa, selecione Exibir.

    Captura de ecrã a mostrar o painel

    Esta etapa abre o painel Visão geral do fluxo de trabalho sem monitoração de estado subjacente, que está incluído em um recurso de aplicativo lógico padrão.

  4. Para exibir o histórico de execução de um fluxo de trabalho sem monitoração de estado, na barra de ferramentas do painel Visão geral , selecione Ativar modo de depuração.

    A guia Histórico de Execução mostra todas as execuções anteriores, em andamento e aguardando a tarefa, juntamente com seus identificadores, status, horários de início e durações de execução.

    Captura de tela mostrando as execuções de uma tarefa, seus status e outras informações.

    A tabela a seguir descreve os status possíveis para uma execução:

    Rótulo de status Description
    Cancelado A tarefa foi cancelada durante a execução.
    Falhado A tarefa tem pelo menos uma ação com falha, mas não existiam ações subsequentes para lidar com a falha.
    Em execução A tarefa está em execução no momento.
    Bem sucedido Todas as ações foram bem-sucedidas. Uma tarefa ainda pode ser concluída com êxito se uma ação falhar, mas existia uma ação subsequente para lidar com a falha.
    A aguardar A execução ainda não foi iniciada e está pausada porque uma instância anterior da tarefa ainda está em execução.
  5. Para exibir os status e outras informações de cada etapa de uma execução, selecione essa execução.

    O painel de detalhes da execução é aberto e mostra o fluxo de trabalho subjacente executado.

    • Um fluxo de trabalho sempre começa com um gatilho. Para essa tarefa, o fluxo de trabalho começa com um gatilho do Service Bus que aguarda a chegada das mensagens na fila do Service Bus de origem.

    • Cada etapa mostra seu status e duração da execução. As etapas que têm durações de 0 segundos levaram menos de 1 segundo para serem executadas.

    Captura de tela mostrando cada etapa da execução, status e duração da execução no fluxo de trabalho.

  6. Para revisar as entradas e saídas de cada etapa, selecione a etapa, que abre um painel que mostra os detalhes de entradas, saídas e propriedades dessa etapa.

    Este exemplo mostra as entradas para o gatilho do Service Bus.

    Captura de tela mostrando as entradas, saídas e propriedades do gatilho.

Para saber como pode criar os seus próprios fluxos de trabalho automatizados para poder integrar aplicações, dados, serviços e sistemas para além do contexto de tarefas de replicação para recursos do Azure, consulte Criar um fluxo de trabalho de integração com Aplicações Lógicas do Azure de inquilino único (Standard) no portal do Azure.

Monitorar tarefas de replicação

Para verificar o desempenho e a integridade da sua tarefa de replicação ou do fluxo de trabalho subjacente do aplicativo lógico, você pode usar o Application Insights, que é um recurso do Azure Monitor. O Application Insights Application Map é uma ferramenta visual útil que você pode usar para monitorar tarefas de replicação. Esse mapa é gerado automaticamente a partir das informações de monitoramento capturadas para que você possa explorar o desempenho e a confiabilidade das transferências de origem e destino da tarefa de replicação. Para obter informações de diagnóstico imediatas e visualização de baixa latência dos detalhes do log, você pode trabalhar com a ferramenta do portal Live Metrics , também um recurso no Azure Monitor.

Editar a tarefa

Para alterar uma tarefa, você tem estas opções:

Editar a tarefa embutida

  1. No portal do Azure, localize o recurso que tem a tarefa que pretende atualizar.

  2. No menu de navegação de recursos, na seção Automação, selecione Tarefas (visualização).

  3. Na lista de tarefas, localize a tarefa que pretende atualizar. Abra o menu de reticências da tarefa (...) e selecione Editar em linha.

    Captura de tela mostrando o menu de reticências aberto e a opção selecionada,

    Por padrão, a guia Autenticar é exibida e mostra as conexões existentes.

  4. Para adicionar novas credenciais de autenticação ou selecionar diferentes credenciais de autenticação existentes para uma conexão, abra o menu de reticências da conexão (...) e selecione Adicionar nova conexão ou, se disponível, credenciais de autenticação diferentes.

    Nota

    Você pode editar apenas a conexão de destino, não a conexão de origem.

    Captura de tela mostrando a guia

  5. Para atualizar outras propriedades da tarefa, selecione Avançar: Configurar.

    Para a tarefa neste exemplo, você pode especificar diferentes filas de origem e destino. No entanto, o nome da tarefa e o aplicativo lógico subjacente e o fluxo de trabalho permanecem os mesmos.

    Captura de ecrã a mostrar o separador

  6. Quando tiver terminado, selecione Guardar.

Editar o fluxo de trabalho subjacente da tarefa

Você pode editar o fluxo de trabalho subjacente por trás de uma tarefa de replicação, que altera a configuração original da tarefa que você criou, mas não o modelo de tarefa em si. Depois de fazer e salvar as alterações, a tarefa editada não executa mais a mesma função que a tarefa original. Se desejar uma tarefa que execute a funcionalidade original, talvez seja necessário criar uma nova tarefa com o mesmo modelo. Se você não quiser recriar a tarefa original, evite alterar o fluxo de trabalho por trás da tarefa usando o designer. Em vez disso, crie um fluxo de trabalho sem monitoração de estado do Aplicativo Lógico (Padrão) para atender às suas necessidades de integração. Para obter mais informações, consulte Criar um fluxo de trabalho de integração com Aplicativos Lógicos do Azure de locatário único (Padrão) no portal do Azure.

  1. No portal do Azure, localize o recurso que tem a tarefa que pretende atualizar.

  2. No menu de navegação de recursos, na seção Automação , selecione Tarefas.

  3. Na lista de tarefas, localize a tarefa que pretende atualizar. Abra o menu de reticências da tarefa (...) e selecione Abrir em Aplicativos Lógicos.

    Captura de tela mostrando o menu de reticências aberto e a opção selecionada,

    O portal do Azure muda o contexto para designer, onde agora você pode editar o fluxo de trabalho.

    Captura de tela mostrando o designer e o fluxo de trabalho subjacente.

    Agora você pode editar o gatilho e as ações do fluxo de trabalho, bem como as propriedades do gatilho e das ações.

  4. Para exibir as propriedades do gatilho ou de uma ação, selecione esse gatilho ou ação.

    Captura de tela mostrando o painel de propriedades do gatilho do Service Bus.

    Neste exemplo, a propriedade IsSessionsEnabled do gatilho é alterada para Sim.

  5. Para salvar as alterações, na barra de ferramentas do designer, selecione Salvar.

    Captura de tela mostrando a barra de ferramentas do designer e o comando

  6. Para testar e executar o fluxo de trabalho atualizado, abra o recurso do aplicativo lógico que contém o fluxo de trabalho atualizado. No menu de navegação do fluxo de trabalho, selecione Visão geral>Executar Trigger>Run.

    Após a conclusão da execução, o designer mostra os detalhes de execução do fluxo de trabalho. Para revisar as entradas e saídas de cada etapa, selecione a etapa, que abre um painel que mostra os detalhes de entradas, saídas e propriedades dessa etapa.

    Este exemplo mostra as entradas, saídas e propriedades do gatilho do Service Bus selecionado, juntamente com o valor atualizado da propriedade do gatilho.

    Captura de tela mostrando os detalhes de execução do fluxo de trabalho com as entradas, saídas e propriedades do gatilho.

  7. Para desativar o fluxo de trabalho para que a tarefa não continue em execução, na barra de ferramentas Visão geral , selecione Desativar. Para obter mais informações, consulte Desabilitar ou habilitar fluxos de trabalho de locatário único.

Configurar failover para Hubs de Eventos do Azure

Para a replicação dos Hubs de Eventos do Azure entre os mesmos tipos de entidade, a recuperação de desastres geográficos requer a execução de um failover da entidade de origem para a entidade de destino e, em seguida, informar a todos os consumidores e produtores de eventos afetados para usar o ponto de extremidade para a entidade de destino, que se torna a nova origem. Assim, se ocorrer um desastre e a entidade de origem fizer failover, os consumidores e produtores, incluindo sua tarefa de replicação, serão redirecionados para a nova fonte. A conta de armazenamento criada pela tarefa de replicação contém informações de ponto de verificação e a posição ou deslocamento no fluxo em que a entidade de origem para se a região de origem for interrompida ou ficar indisponível.

Para garantir que a conta de armazenamento não contenha informações herdadas da fonte original e que sua tarefa de replicação comece a ler e replicar eventos desde o início do novo fluxo de origem, você precisa limpar manualmente todas as informações herdadas da fonte original e reconfigurar a tarefa de replicação.

  1. No portal do Azure, abra o recurso do aplicativo lógico ou o fluxo de trabalho subjacente por trás da tarefa de replicação.

    Nota

    O recurso do aplicativo lógico deve conter apenas fluxos de trabalho de tarefas de replicação.

  2. No menu de navegação do recurso ou fluxo de trabalho, selecione Visão geral. Na barra de ferramentas Visão geral, selecione Desabilitar para o fluxo de trabalho ou selecione Parar para o recurso do aplicativo lógico.

  3. Para localizar a conta de armazenamento usada pelo recurso de aplicativo lógico subjacente da tarefa de replicação para armazenar o ponto de verificação e transmitir informações de deslocamento da entidade de origem, siga estas etapas:

    1. No menu de recursos do aplicativo lógico, em Configurações, selecione Configuração.

    2. No painel Configuração, na guia Configurações do aplicativo, selecione a configuração do aplicativo AzureWebJobsStorage.

      Essa configuração especifica a cadeia de conexão e a conta de armazenamento usadas pelo recurso do aplicativo lógico.

      Nota

      Se a configuração do aplicativo não aparecer na lista, selecione Mostrar valores.

    3. Selecione a configuração do aplicativo AzureWebJobsStorage para que você possa exibir o nome da conta de armazenamento.

    Este exemplo mostra como localizar o nome dessa conta de armazenamento, que está storagefabrikamreplb0c aqui:

    Captura de ecrã a mostrar o painel

    1. Para confirmar se o recurso de conta de armazenamento existe, na caixa de pesquisa do portal do Azure, digite o nome e selecione a conta de armazenamento, por exemplo:

    Captura de ecrã a mostrar a caixa de pesquisa do portal do Azure com o nome da conta de armazenamento introduzido.

  4. Agora, exclua a pasta que contém o ponto de verificação e as informações de deslocamento da entidade de origem usando as seguintes etapas:

    1. Transfira, instale e abra o cliente de ambiente de trabalho mais recente do Azure Storage Explorer, se não tiver a versão mais recente.

      Nota

      Para a tarefa de limpeza de exclusão, você precisa usar o cliente do Gerenciador de Armazenamento do Azure, não o gerenciador de armazenamento, navegador, editor ou experiência de gerenciamento no portal do Azure.

      Embora você possa excluir pastas de contêiner com o comando PowerShellRemove-AzStorageDirectory, esse comando funciona apenas em pastas vazias.

    2. Se ainda não o fez, inicie sessão com a sua conta do Azure e certifique-se de que a sua subscrição do Azure para o recurso da sua conta de armazenamento está selecionada. Para obter mais informações, consulte Introdução ao Storage Explorer.

    3. Na janela do Explorer, sob o nome da sua assinatura do Azure, vá para Contas de Armazenamento>{seu-storage-account-name}>Contêineres>de Blob azure-webjobs-eventhub.

      Nota

      Se a pasta azure-webjobs-eventhub não existir, a tarefa de replicação ainda não foi executada. A pasta aparece somente depois que a tarefa de replicação é executada pelo menos uma vez.

      Captura de tela mostrando o Gerenciador de Armazenamento do Azure com a conta de armazenamento e o contêiner de blob abertos para mostrar a pasta

    4. No painel azure-webjobs-eventhub que é aberto, selecione a pasta de namespace Hubs de Eventos, que tem um nome com o seguinte formato: <source-Event-Hubs-namespace-name>.servicebus.windows.net.

    5. Depois que a pasta namespace for aberta, no painel azure-webjobs-eventhub, selecione a< pasta former-source-entity-name>. No menu de atalho da barra de ferramentas ou da pasta, selecione Excluir, por exemplo:

      Captura de tela mostrando a antiga pasta de entidade dos Hubs de Eventos de origem selecionada com o botão

    6. Confirme que deseja excluir a pasta.

  5. Retorne ao recurso do aplicativo lógico ou fluxo de trabalho por trás da tarefa de replicação. Reinicie o aplicativo lógico ou habilite o fluxo de trabalho novamente.

Para fazer com que produtores e consumidores usem o novo ponto de extremidade de origem, você precisa disponibilizar informações sobre a nova entidade de origem para uso e localização em um local fácil de acessar e atualizar. Se os produtores ou consumidores se depararem com erros frequentes ou persistentes, devem verificar essa localização e ajustar a sua configuração. Há várias maneiras de compartilhar essa configuração, mas o DNS e os compartilhamentos de arquivos são exemplos.

Para obter mais informações sobre recuperação de desastres geográficos, consulte a seguinte documentação:

Editar configurações de expansão do plano de hospedagem

  1. No portal do Azure, abra o recurso de aplicativo lógico subjacente para sua tarefa de replicação.

  2. No menu de recursos do aplicativo lógico, em Configurações, selecione Dimensionamento (Plano do Serviço de Aplicativo).

    Captura de tela mostrando as configurações do plano de hospedagem para intermitências máximas, instâncias mínimas, instâncias sempre prontas e imposição de limite de expansão.

  3. Com base nas necessidades do cenário, em Planejar Expansão e Dimensionamento de Aplicativo, altere os valores para as instâncias de intermitência máxima e sempre prontas, respectivamente.

  4. Quando terminar, na barra de ferramentas do painel Dimensionamento (plano do Serviço de Aplicativo), selecione Salvar.

Para obter mais informações, consulte a seguinte documentação, pois o plano Workflow Standard compartilha alguns aspetos com o plano Premium do Azure Functions:

Problemas e falhas de replicação

Esta seção descreve possíveis maneiras pelas quais a replicação pode falhar ou parar de funcionar:

  • Limites de tamanho de mensagem

    Certifique-se de enviar mensagens menores que 1 MB porque a tarefa de replicação adiciona propriedades de replicação. Caso contrário, se o tamanho da mensagem for maior do que o tamanho dos eventos que podem ser enviados para uma entidade de Hubs de Eventos depois que a tarefa adicionar propriedades de replicação, o processo de replicação falhará.

    Por exemplo, suponha que o tamanho da mensagem seja de 1 MB. Depois que a tarefa adiciona propriedades de replicação, o tamanho da mensagem é maior que 1 MB. A chamada de saída que tentar enviar a mensagem falhará.

  • Chaves de partição

    Se existirem chaves de partição nos eventos, a replicação entre instâncias de Hubs de Eventos falhará se essas instâncias tiverem o mesmo número de partições.

Próximos passos