Compartilhar via


Criar tarefas de replicação para recursos do Azure usando os Aplicativos Lógicos do Azure (versão prévia)

Importante

Esse recurso está em versão prévia e está sujeito aos Termos de uso suplementares para versões prévias do Microsoft Azure.

Embora disponibilidade e confiabilidade máximas sejam as principais prioridades operacionais dos serviços do Azure, ainda existem muitas maneiras para que a comunicação seja interrompida devido a problemas de resolução de nomes ou de rede, erros ou falta de resposta temporária. Essas condições não são tão "desastrosas" a ponto de fazer com que você deseje abandonar a implantação regional por completo, como faria em situações de recuperação de desastre. 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é mesmo segundos.

Para reduzir o efeito que os eventos imprevisíveis podem ter em seus recursos do Azure em uma região do Azure, você pode replicar o conteúdo desses recursos de uma região para outra, para que você possa 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ê poderá ter o destino prontamente disponível se a origem ficar offline e o destino tiver que assumir.

Observação

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 as tarefas de replicação da plataforma Aplicativos Lógicos do Azure e mostra como criar uma tarefa de replicação de exemplo para filas do Barramento de Serviço do Azure. Se você não estiver familiarizado com aplicativos lógicos e fluxos de trabalho, revise O que são os 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 dos Hubs de Eventos. A tarefa de replicação geralmente move o conteúdo inalterado, mas as tarefas de replicação da plataforma 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 não têm estado, o que significa que elas não compartilham estados nem outros efeitos colaterais entre execuções sequenciais ou paralelas de uma tarefa.

Quando você usa os modelos de tarefa de replicação disponíveis, cada tarefa de replicação que você cria tem um fluxo de trabalho sem estado subjacente em um recurso de Aplicativo Lógico (Standard) , 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 escalonável e confiável para configurar e executar aplicativos sem servidor, incluindo tarefas de replicação e de federação. Esse runtime de locatário único dos Aplicativos Lógicos do Azure também usa o modelo de extensibilidade do Azure Functions e é hospedado como uma extensão no Azure Functions Runtime. Esse design oferece portabilidade, flexibilidade e melhor desempenho para fluxos de trabalho dos aplicativos lógicos, além de outras funcionalidades e recursos herdados da plataforma do Azure Functions e do ecossistema do Serviço de Aplicativo do Azure.

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

Modelos de tarefa de replicação

Atualmente, os modelos de tarefa de replicação estão disponíveis para Hubs de Eventos do Azure e Barramento de Serviço do Azure. A seguinte tabela lista os modelos de tarefa de replicação disponíveis atualmente nesta versão prévia:

Tipo de recurso Origem e o 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 Barramento de Serviço
– Instância de Hubs de Eventos para tópico do Barramento de Serviço
Namespace do Barramento de Serviço do Azure – Fila do Barramento de Serviço para fila do Barramento de Serviço
– Fila do Barramento de Serviço para tópico do Barramento de Serviço
- Tópico do Barramento de Serviço a Tópico do Barramento de Serviço
- Fila do Barramento de Serviço a instância dos Hubs de Eventos
- Tópico do Barramento de Serviço a Fila do Barramento de Serviço
- Tópico do Barramento de Serviço a instância dos Hubs de Eventos

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

Para espelhar mensagens, use um tópico como a origem em que a assinatura "principal" atua como um ponto de extremidade de fila. Dessa forma, o destino obtém uma cópia de cada mensagem da origem.

Para encaminhar mensagens entre regiões diferentes, você pode criar uma fila na qual 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, examine Topologia de replicação para ServiceBusCopy.

Topologia de replicação e fluxo de trabalho

Para ajudar você a visualizar como uma tarefa de replicação da plataforma dos Aplicativos Lógicos do Azure (Standard) funciona, os diagramas a seguir mostram a estrutura de tarefas de replicação e o fluxo de trabalho para instâncias de Hubs de Eventos e para filas do Barramento de Serviço.

Topologia de replicação para Hubs de Eventos

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

Diagrama conceitual mostrando a topologia da tarefa de replicação por um fluxo de trabalho de

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

Topologia de replicação para o Barramento de Serviço

O seguinte diagrama mostra o fluxo de trabalho da tarefa de replicação e topologia entre as filas do Barramento de Serviço:

Diagrama conceitual mostrando a topologia da tarefa de replicação por um fluxo de trabalho de

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

Metadados e mapeamentos de propriedade

Para os Hubs de Eventos, os seguintes itens obtidos do namespace de Hubs de Eventos de origem são substituídos por novos valores atribuídos ao serviço no namespace dos Hubs de Eventos de destino: metadados atribuídos ao serviço de um evento, tempo de enfileiramento original, número de sequência e deslocamento. No entanto, para as 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 (cadeia de caracteres ISO8601), repl-sequence e repl-offset. Essas propriedades são do tipo string (cadeia de caracteres) e contêm o valor em cadeias de caracteres das respectivas propriedades originais. Se o evento for encaminhado várias vezes, os metadados atribuídos pelo serviço da origem imediata serão anexados às propriedades já existentes, com valores separados por ponto e vírgula. Para obter mais informações, confira Metadados atribuídos ao serviço – padrões de tarefa de replicação de evento.

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

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

Dos Hubs de Eventos Para o Barramento de Serviço
ContentType ContentType
CorrelationId CorrelationId
MessageId MessageId
PartitionKey PartitionKey SessionId
Propriedades Propriedades do Usuário
ReplyTo ReplyTo
ReplyToGroupName ReplyToSessionId
Assunto Rótulo
Para Para

Preservação da ordem

Para os 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, na replicação entre diferentes números de partições, apenas a ordem relativa de eventos é preservada com base na chave de partição, mas esse tipo de replicação também pode incluir duplicatas. Para obter mais informações, revise Fluxos e preservação da ordem.

Para o Barramento de Serviço, você precisa habilitar sessões para que as sequências de mensagens com a mesma ID de sessão recuperadas 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, revise Sequências e preservação da ordem.

Importante

As tarefas de replicação não acompanham quais mensagens já foram processadas quando a origem passa por um evento de interrupção. Para evitar o reprocessamento de mensagens já processadas, você precisa configurar uma forma de acompanhar as mensagens já processadas para que o processamento seja retomado somente para mensagens não processadas.

Por exemplo, você pode configurar um banco de dados que armazena o estado de processamento de cada mensagem. Quando uma mensagem chegar, verifique o estado dela e processe somente quando a mensagem não houver sido processada. Dessa forma, não haverá processamento de mensagens já processadas.

Esse padrão demonstra o conceito de idempotência, segundo o qual 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 de vários sites e várias regiões para os serviços do Azure, em que você pode criar tarefas de replicação, revise a seguinte documentação:

Preços

Nos bastidores, uma tarefa de automação é alimentada por um fluxo de trabalho sem estado em um recurso de Aplicativo Lógico (Standard) que é hospedado em Aplicativos Lógicos do Azure de locatário único. Quando você cria essa tarefa de replicação, os encargos começam a incorrer imediatamente. O uso, a medição, a cobrança e o modelo de preços seguem o plano de hospedagem Standard e os tipos de preço do plano Standard.

Com base no número de eventos que os Hubs de Eventos recebem ou nas mensagens com as quais o Barramento de Serviço lida, o plano de hospedagem pode ser escalado ou reduzido verticalmente para manter um uso mínimo da vCPU e baixa latência durante a replicação ativa. Esse comportamento exige que você crie um recurso de aplicativo lógico para usar em sua tarefa de replicação, escolha o tipo de preço do plano Standard adequado para que os Aplicativos Lógicos do Azure não tenham restrições nem comecem a aumentar o uso da CPU, e ainda possam garantir uma velocidade de replicação alta.

Observação

Se seu aplicativo começar com uma instância do plano WS1 e, em seguida, escalar horizontalmente para duas instâncias, o custo será duas vezes o custo de WS1, supondo que os planos sejam executados o dia inteiro. Se você escalar verticalmente seu aplicativo para o plano WS2 e usar uma instância, o custo será efetivamente o mesmo que duas instâncias de plano WS1. Da mesma forma, se você escalar verticalmente 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 de WS1.

Os exemplos a seguir ilustram o tipo de preço e as opções de configuração do plano de hospedagem que fornecem a melhor taxa de transferência e o custo para cenários de tarefas de replicação específicos, com base em se o cenário é Hubs de Eventos ou Barramento de Serviço e vários valores de configuração.

Observação

Os exemplos nas seções a seguir usam 800 como o valor padrão da contagem de pré-busca, o tamanho máximo do lote de eventos dos Hubs de Eventos e a contagem máxima de mensagens do Barramento de Serviço, supondo que o tamanho do evento ou da mensagem seja 1 KB. Com base em seus tamanhos de eventos, talvez você queira 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 o tamanho da mensagem for superior a 1 KB, talvez você queira reduzir os valores para a contagem de pré-busca e o tamanho máximo do lote de eventos ou a contagem de mensagens de 800.

Escalar horizontalmente os Hubs de Eventos

Os exemplos a seguir ilustram o tipo de preço e as opções de configuração do plano de hospedagem 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, o número de eventos por segundo e 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 1 KB. Com base em seus tamanhos de eventos, talvez você queira ajustar a contagem de pré-busca e o tamanho máximo do lote de eventos. Por exemplo, se o tamanho do seu evento for superior a 1 KB, talvez você queira reduzir os valores para a contagem de pré-busca e o tamanho máximo do lote de eventos de 800.

Tipo de preço Contagem de partições Eventos por segundo Máximo de intermitências* Instâncias sempre prontas* Contagem 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 tipo de preço, revise a tabela a seguir:

Valor Descrição
Máximo de intermitências O número máximo de trabalhadores elásticos a escalar horizontalmente na carga. Se seu aplicativo exigir instâncias além das instâncias sempre prontas na próxima linha da tabela, ele poderá continuar escalando horizontalmente 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 escala horizontal de plano de hospedagem mais adiante neste artigo.

Observação: as instâncias além do tamanho do plano serão cobradas somente enquanto elas estiverem em execução e alocadas a você, em uma base por segundo. A plataforma faz um melhor esforço para escalar horizontalmente o aplicativo para o limite máximo definido.

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

Para obter mais informações, revise a seguinte documentação, pois o plano Standard do fluxo de trabalho compartilha alguns aspectos com o plano Premium do Azure Functions:

- Plano e configurações de SKU - plano Premium do Azure Functions
- O que é a intermitência de nuvem?

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

Observação: as instâncias além do tamanho do plano serão cobradas independentemente se estiverem em execução e alocadas a você.

Para obter mais informações, revise a seguinte documentação, pois o plano Standard do fluxo de trabalho compartilha alguns aspectos com o plano Premium do Azure Functions: instâncias sempre prontas - plano Premium do Azure Functions.

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

- Nome: AzureFunctionsJobHost__extensions__eventHubs__eventProcessorOptions__prefetchCount
- Valor: 800 (sem limite máximo)

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

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

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

- Nome: AzureFunctionsJobHost__extensions__eventHubs__eventProcessorOptions__maxBatchSize
- Valor: 800 (sem limite máximo)

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

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

Escalar horizontalmente Barramento de Serviço

Os exemplos a seguir ilustram o tipo de preço e as opções de configuração do plano de hospedagem para uma tarefa de replicação entre dois namespaces de Barramento de Serviço na mesma região, com base no número de mensagens por segundo e 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, talvez você queira ajustar a contagem de pré-buscas e a contagem máxima de mensagens. Por exemplo, se o tamanho da mensagem for maior que 1 KB, talvez você queira reduzir os valores para a contagem de pré-busca e a contagem máxima de mensagens de 800.

Tipo de preço Mensagens por segundo Máximo de intermitências* Instâncias sempre prontas* Contagem 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 tipo de preço, revise a tabela a seguir:

Valor Descrição
Máximo de intermitências O número máximo de trabalhadores elásticos a escalar horizontalmente na carga. Se seu aplicativo exigir instâncias além das instâncias sempre prontas na próxima linha da tabela, ele poderá continuar escalando horizontalmente 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 escala horizontal de plano de hospedagem mais adiante neste artigo.

Observação: as instâncias além do tamanho do plano serão cobradas somente enquanto elas estiverem em execução e alocadas a você, em uma base por segundo. A plataforma faz um melhor esforço para escalar horizontalmente o aplicativo para o limite máximo definido.

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

Para obter mais informações, revise a seguinte documentação, pois o plano Standard do fluxo de trabalho compartilha alguns aspectos com o plano Premium do Azure Functions:

- Plano e configurações de SKU - plano Premium do Azure Functions
- O que é a intermitência de nuvem?

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

Observação: as instâncias além do tamanho do plano serão cobradas independentemente se estiverem em execução e alocadas a você.

Para obter mais informações, revise a seguinte documentação, pois o plano Standard do fluxo de trabalho compartilha alguns aspectos com o plano Premium do Azure Functions: instâncias sempre prontas - plano Premium do Azure Functions.

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

- Nome: AzureFunctionsJobHost__extensions__eventHubs__eventProcessorOptions__prefetchCount
- Valor: 800 (sem limite máximo)

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

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

Contagem máxima de mensagens O valor padrão para a configuração de aplicativo AzureFunctionsJobHost__extensions__serviceBus__batchOptions__maxMessageCount no recurso de aplicativo lógico que determina a contagem máxima de mensagens a enviar ao ser acionado com o gatilho. Para adicionar ou especificar um valor diferente para essa configuração de aplicativo, revise Gerenciar configurações de aplicativo – local.settings.json, por exemplo:

- Nome: AzureFunctionsJobHost__extensions__serviceBus__batchOptions__maxMessageCount
- Valor: 800 (sem limite máximo)

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

Pré-requisitos

  • Uma conta e uma assinatura do Azure. Se você não tem uma assinatura, inscreva-se em uma conta gratuita do Azure.

  • As entidades ou recursos 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 desastre geográfico. 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 diferentes namespaces e regiões do Azure.

  • Um recurso do Aplicativo Lógico (Standard) 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 o tipo de preço com base nas necessidades do cenário de replicação, como capacidade, taxa de transferência e dimensionamento. Embora você possa criar esse recurso ao criar a tarefa de replicação, não é possível alterar a região, o plano de hospedagem nem o tipo de preço. A seguinte lista 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 que difere das entidades de origem e de destino em sua tarefa de replicação.

      Atualmente, essas diretrizes são fornecidas 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 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 fonte, 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 o tipo 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 garantir que esse recurso de aplicativo lógico contenha apenas fluxos de trabalho de tarefa de replicação, especialmente se você 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 estado) a esse recurso de aplicativo lógico.

    Para obter mais informações, revise Criar um fluxo de trabalho de integração com os Aplicativos Lógicos do Azure (Standard) de locatário único 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 encontrar a cadeia de conexão para a entidade de destino, siga estas etapas:

    1. No portal do Azure, acesse 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 Política SAS: RootManageSharedAccessKey que é aberto, copie o valor de Cadeia de Conexão Primária.

    5. Salve a cadeia de conexão em algum lugar para que você possa usar posteriormente a cadeia de caracteres para se conectar ao namespace de destino.

Convenções de nomenclatura

Considere cuidadosamente a estratégia de nomenclatura a ser usada por você para suas entidades ou tarefas de replicação, caso ainda não as tenha criado. Os nomes precisam ser facilmente identificáveis e diferenciados. Por exemplo, se você estiver trabalhando com o namespace de Hubs de Eventos, a tarefa de replicação será replicada de cada instância de Hubs de Eventos no namespace de origem. Se você estiver trabalhando com filas do Barramento de Serviço, a seguinte tabela fornece um exemplo para nomear as entidades e a tarefa de replicação:

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

Criar um tarefa de replicação

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

  1. No portal do Azure, localize o namespace do Barramento de Serviço que você deseja usar como a origem.

  2. No menu de navegação de namespace, na seção Automação, selecione Tarefas (versão prévia) .

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

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

    Captura de tela que mostra o painel

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

    Este exemplo prossegue selecionando o modelo de tarefa Replicar para a fila do Barramento de Serviço para enfileirar o modelo da tarefa, que replica o conteúdo entre filas do Barramento de Serviço.

    Captura de tela mostrando o painel “Adicionar uma tarefa” com o modelo “Replicar para o Barramento de Serviço” selecionado.

  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 a todas as conexões. Os tipos de conexões de cada tarefa variam de acordo com a tarefa.

    Este exemplo mostra o prompt para criar a conexão com o namespace do Barramento de Serviço de destino em que a fila de destino existe. A conexão já existe para o namespace do Barramento de Serviço de origem.

    Captura de tela mostrando a opção

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

    Para este exemplo, forneça um nome de exibição para a conexão e selecione o namespace do Barramento de Serviço em que a fila de destino existe.

    Captura de tela mostrando o painel

    Dica

    Em vez disso, você também pode criar a conexão com uma cadeia de conexão. Essa opção permite que o destino exista em uma assinatura diferente, para que você possa configurar a replicação entre assinaturas. O destino (ou a origem, dependendo do local em que você começou a criar a tarefa de replicação) é configurado dinamicamente, de modo que você só tenha que conectar o destino. Para usar uma cadeia de conexão, use as seguintes etapas:

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

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

    O seguinte exemplo 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 qualquer outra informação necessária para ela.

    Observação

    Você não pode alterar o nome da tarefa após a criação, portanto, use um nome que ainda se aplicará caso você edite o fluxo de trabalho subjacente. As alterações feitas no fluxo de trabalho subjacente se aplicam somente à tarefa que você criou, não ao modelo da tarefa.

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

    1. Para adicionar o fluxo de trabalho da tarefa a um recurso de Aplicativo Lógico (Standard) existente, na lista Aplicativo Lógico, selecione o aplicativo lógico existente. Para criar um recurso de Aplicativo Lógico (Standard) em vez disso, na lista Aplicativo Lógico, selecione Criar e forneça o nome a ser usado para o novo aplicativo lógico.

      Observação

      Se você criar um recurso de aplicativo lógico durante a criação da tarefa de replicação, o aplicativo lógico será criado na mesma região que a 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 melhor prática é criar um recurso de Aplicativo Lógico (Standard) 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, revise os Pré-requisitos.

    2. Quando terminar, selecione Review + create.

    Captura de tela mostrando o painel

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

    • Se você optar por criar um 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, o fluxo de trabalho e outras operações de runtime. 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 em que a entidade de origem vai parar se a região de origem for interrompida ou ficar indisponível.

      O exemplo a seguir mostra a guia Examinar + criar se você optar por criar um 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 seguinte exemplo mostra a guia Examinar + criar, exibida se você opta por reutilizar um aplicativo lógico existente:

      Captura de tela mostrando o painel

    Observação

    Se a origem, o destino ou ambos estão atrás de uma rede virtual, você precisa configurar permissões e acesso depois de criar a tarefa. Nesse cenário, as permissões e o 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 fica automaticamente ativa e em execução, agora aparece na lista Tarefas.

    Dica

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

    Captura de tela mostrando o painel

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

Configurar uma política de repetição

Para evitar a perda de dados durante um evento de disponibilidade em qualquer um dos lados de uma relação de replicação, você precisa configurar a política de repetição para que ela seja robusta. Para configurar a política de repetição para uma tarefa de replicação, examine 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.

Analisar o histórico de tarefas

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

  1. No portal do Azure, localize o recurso ou entidade do Azure que contém o histórico de tarefas que você deseja analisar.

    Para este exemplo, esse recurso é um namespace do Barramento de Serviço.

  2. No menu de navegação do recurso, em Configurações, na seção Automação, selecione Tarefas (versão prévia) .

  3. No painel Tarefas, localize a tarefa que você deseja examinar. Na coluna Execuções da tarefa, selecione Exibir.

    Captura de tela mostrando o painel

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

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

    A guia Histórico de execuções mostra todas as execuções anteriores, em andamento e em espera para a tarefa, juntamente com os respectivos identificadores, status, horas de início e durações de execução.

    Captura de tela que mostra as execuções de uma tarefa, os respectivos status e outras informações.

    A seguinte tabela descreve os possíveis status de uma execução:

    Rótulo de status Descrição
    Cancelado A tarefa foi cancelada durante a execução.
    Com falha A tarefa tem pelo menos uma ação com falha, mas não existiam ações subsequentes para lidar com a falha.
    Executando A tarefa está em execução atualmente.
    Êxito Todas as ações foram bem sucedidas. Uma tarefa ainda pode ser concluída com êxito caso uma ação tenha falhado, mas houve uma ação subsequente para lidar com a falha.
    Aguardando A execução ainda não foi iniciada e está em pausa 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 que foi executado.

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

    • Cada etapa mostra seu status e a duração da execução. As etapas que apresentam a duração de 0 segundo levaram menos de 1 segundo para serem executadas.

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

  6. Para revisar as entradas e saídas de cada etapa, selecione a etapa, o 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 Barramento de Serviço.

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

Para saber como você pode criar seus próprios fluxos de trabalho automatizados para que possa integrar aplicativos, dados, serviços e sistemas além do contexto de tarefas de replicação para recursos do Azure, examine Criar um fluxo de trabalho de integração usando Aplicativos Lógicos do Azure (Standard) de locatário único no portal do Azure.

Monitorar tarefas de replicação

Para verificar o desempenho e a saúde da tarefa de replicação ou do fluxo de trabalho do aplicativo lógico subjacente, você pode usar o Application Insights, que é uma funcionalidade no Azure Monitor. O Mapa do aplicativo do Application Insights é uma ferramenta visual útil que você pode usar para monitorar tarefas de replicação. Esse mapa é gerado automaticamente com as informações de monitoramento capturadas para que você possa explorar o desempenho e a confiabilidade das transferências de destino e origem da tarefa de replicação. Para obter insights de diagnóstico imediatos e visualização de baixa latência dos detalhes de log, você pode trabalhar com a ferramenta do portal Live Metrics, que também é uma funcionalidade do 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 contém a tarefa que você deseja atualizar.

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

  3. Na lista de tarefas, localize a tarefa que você deseja atualizar. Abra o menu nas reticências da tarefa ( ... ) e selecione Editar embutida.

    Captura de tela que mostra 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 aquelas existentes diferentes 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.

    Observação

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

    Captura de tela que mostra a guia

  5. Para atualizar outras propriedades de 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, o aplicativo lógico subjacente e o fluxo de trabalho permanecem os mesmos.

    Captura de tela mostrando a guia

  6. Quando terminar, selecione Salvar.

Editar o fluxo de trabalho subjacente da tarefa

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

  1. No portal do Azure, localize o recurso que contém a tarefa que você deseja atualizar.

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

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

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

    O portal do Azure altera o contexto para o designer, que agora permite que você edite o fluxo de trabalho.

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

    Agora você pode editar o gatilho e das 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-os.

    Captura de tela mostrando o painel de propriedades de gatilho do Barramento de Serviço.

    Para este 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 que mostra a barra de ferramentas do designer e o comando

  6. Para testar e executar o fluxo de trabalho atualizado, abra o recurso de 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 Gatilho>Executar.

    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, o 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 Barramento de Serviço 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 desabilitar o fluxo de trabalho para que a tarefa não continue em execução, na barra de ferramentas Visão geral, selecione Desabilitar. Para obter mais informações, examine Desabilitar ou habilitar fluxos de trabalho de locatário único.

Configurar o failover para os 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 desastre geográfico requer a execução de um failover da entidade de origem para a entidade de destino e, em seguida, que todos os consumidores e produtores de eventos afetados sejam orientados a usar o ponto de extremidade da entidade de destino, que se torna a nova origem. Portanto, se ocorrer um desastre e a entidade de origem realizar failover, os consumidores e produtores, incluindo a tarefa de replicação, serão redirecionados para a nova origem. A conta de armazenamento que foi 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 é interrompida se a região de origem for interrompida ou ficar indisponível.

Para garantir que a conta de armazenamento não contenha nenhuma informação herdada 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 à tarefa de replicação.

    Observação

    O recurso de aplicativo lógico deve conter apenas fluxos de trabalho de tarefa 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 de 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 as informações de deslocamento de fluxo da entidade de origem, siga estas etapas:

    1. No menu 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 usada pelo recurso de aplicativo lógico.

      Observação

      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 tela mostrando o painel “Configuração” do recurso de aplicativo lógico subjacente com a configuração de aplicativo “AzureWebJobsStorage” e a cadeia de conexão com o nome da conta de armazenamento.

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

    Captura de tela mostrando a caixa de pesquisa portal do Azure com o nome da conta de armazenamento inserido.

  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. Baixe, instale e abra o cliente mais recente do cliente de área de trabalho do Gerenciador de Armazenamento do Azure, se você não tiver a versão mais recente.

      Observação

      Para a tarefa excluir limpeza, no momento você precisa usar o cliente Gerenciador de Armazenamento do Microsoft 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 Remove-AzStorageDirectory comando do PowerShell, esse comando só funciona em pastas vazias.

    2. Se você ainda não fez isso, entre com sua conta do Azure e verifique se sua assinatura do Azure para o recurso de conta de armazenamento está selecionada. Para obter mais informações, confira Introdução ao Gerenciador de Armazenamento.

    3. Na janela do Explorer, em seu nome de assinatura do Azure, acesse Armazenamento contas>{your-Storage-account-name}>contêineres de Blob>Azure-webjobs-eventhub.

      Observação

      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 a Gerenciador de Armazenamento do Microsoft Azure com a conta de armazenamento e o contêiner de blob abertos para mostrar a pasta “Azure-webjobs-eventhub” selecionada.

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

    5. Depois que a pasta de 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 pasta antiga da entidade de Hubs de Eventos de origem selecionada com o botão “Excluir” também selecionado.

    6. Confirme que você deseja excluir a pasta.

  5. Retorne ao recurso de aplicativo lógico ou fluxo de trabalho subjacente à 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ê precisará disponibilizar informações sobre a nova entidade de origem para que sejam usadas e encontradas, em um local que seja fácil de acessar e atualizar. Se produtores ou consumidores encontrarem erros frequentes ou persistentes, eles deverão consultar esse local e ajustar a configuração deles. Há várias maneiras de compartilhar essa configuração. O DNS e os compartilhamentos de arquivos são alguns exemplos.

Para obter mais informações sobre a recuperação de desastre geográfico, examine a seguinte documentação:

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

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

  2. No menu de recursos do aplicativo lógico, em Configurações, selecione Escalar horizontalmente (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 escalonamento horizontal.

  3. Com base nas necessidades do seu cenário, em Planejar escalonamento horizontal e escalonamento horizontal do aplicativo, altere os valores para as instâncias máxima de intermitência e sempre pronta, respectivamente.

  4. Quando terminar, na barra de ferramentas do painel Escalar horizontalmente (plano do serviço de aplicativo) , selecione Salvar.

Para obter mais informações, revise a seguinte documentação, pois o plano Standard do fluxo de trabalho compartilha alguns aspectos com o plano Premium do Azure Functions:

Problemas de replicação e falhas

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

  • Limites de tamanho de mensagem

    É necessário enviar mensagens com menos de 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 a 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 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 dos Hubs de Eventos falhará se essas instâncias tiverem o mesmo número de partições.

Próximas etapas