Enviar, receber e processar em lote mensagens nos Aplicativos Lógicos do Azure

Aplica-se a: Aplicativos Lógicos do Azure (Consumo)

Para enviar e processar mensagens em conjunto de uma maneira específica como grupos, você pode criar uma solução de lote. Essa solução coleta mensagens em um lote e aguarda até que seus critérios especificados sejam atendidos antes de liberar e processar as mensagens em lote. Os lotes podem reduzir a frequência com que seu aplicativo lógico processa mensagens.

Este guia prático mostra como criar uma solução em lote, criando dois aplicativos lógicos na mesma assinatura do Azure, região do Azure e nesta ordem:

  1. O aplicativo lógico "receptor em lote", que aceita e coleta mensagens em um lote até que seus critérios especificados sejam atendidos para liberar e processar essas mensagens. Certifique-se primeiro de criar este receptor do lote para, em seguida, selecionar o destino do lote ao criar o remetente do lote.

  2. Um ou mais aplicativos lógicos "remetente em lote", que enviam as mensagens para o destinatário do lote criado anteriormente.

    O remetente do lote pode especificar uma chave exclusiva que particione ou divida o lote de destino em subconjuntos lógicos com base nessa chave. Por exemplo, um número de cliente é uma chave exclusiva. Dessa forma, o aplicativo receptor pode coletar todos os itens com a mesma chave e processá-los juntos.

O destinatário e o remetente do lote precisam compartilhar a assinatura e a região do Azure. Caso contrário, não será possível selecionar o receptor do lote ao criar o remetente do lote porque não estarão visíveis um para o outro.

Pré-requisitos

Limitações

  • Só é possível verificar o conteúdo de um lote após a liberação, comparando o conteúdo liberado com a origem.

  • Só é possível liberar um lote antecipadamente alterando os critérios de liberação no receptor do lote, descritos nesse guia, enquanto o gatilho ainda estiver com o lote. No entanto, o gatilho usa os critérios de liberação atualizados para todas as mensagens não enviadas.

Criar destinatário do lote

Antes de enviar mensagens para um lote, esse lote deverá existir primeiro como o destino para o qual essas mensagens serão enviadas. Portanto, primeiro, é necessário criar o aplicativo lógico "receptor do lote" que inicia com o gatilho do Lote. Dessa forma, ao criar o aplicativo lógico "remetente do lote", será possível selecionar o aplicativo lógico do receptor do lote. O receptor do lote continuará coletando mensagens até que seus critérios especificados sejam atendidos para liberar e processar essas mensagens. Embora os receptores dos lotes não precisem saber nada sobre os remetentes dos lotes, os remetentes dos lotes deverão saber o destino para onde enviarão as mensagens.

  1. No portal do Azure ou no Visual Studio, crie um aplicativo lógico com este nome: BatchReceiver

  2. No designer de fluxo de trabalho, adicione o gatilho Lote, que dá início ao seu fluxo de trabalho de aplicativo lógico. Na caixa de pesquisa, insira batch e selecione este gatilho: Mensagens em lote

    Adicionar gatilho de

  3. Defina estas propriedades para o receptor do lote:

    Propriedade Descrição
    Modo de lote - Inline: para definir os critérios de liberação dentro do acionador de lote
    - Conta de Integração: para definir várias configurações de critérios de liberação por meio de uma conta de integração. Com uma conta de integração, você pode manter essas configurações em um só lugar e não em aplicativos lógicos separados.
    Nome do lote O nome do seu lote, que é "TestBatch" neste exemplo, e se aplica apenas ao modo em lote Inline
    Critérios de liberação Aplica-se somente ao modo em lote Embutido e selecione os critérios a serem atendidos antes do processamento de cada lote:

    - Baseado na contagem de mensagens: libere o lote com base no número de mensagens coletadas pelo lote.
    - Baseado no tamanho: libere o lote com base no tamanho total em bytes de todas as mensagens coletadas por esse lote.
    - Agendamento: libere o lote com base em uma agenda de recorrência, que especifica um intervalo e a frequência. Nas opções avançadas, você também pode selecionar um fuso horário e fornecer uma data e hora de início.
    - Selecionar tudo: usar todos os critérios especificados.

    Contagem de mensagens O número de mensagens a coletar no lote, por exemplo, 10 mensagens. O limite de um lote é 8.000 mensagens.
    Tamanho do lote O tamanho total em bytes para coletar no lote, por exemplo, 10 MB. O limite de tamanho de um lote é de 80 MB.
    Agenda O intervalo e a frequência entre lançamentos de lote, por exemplo, 10 minutos. A recorrência mínima é de 60 segundos ou 1 minuto. Os valores de fração de minutos são arredondados para 1 minuto. Para especificar um fuso horário ou uma data e hora de início, abra a lista Adicionar novo parâmetro e selecione as propriedades correspondentes.

    Observação

    Se você alterar os critérios de liberação enquanto o gatilho ainda tiver mensagens em lote não enviadas, o gatilho usará os critérios de liberação atualizados para lidar com as mensagens não enviadas.

    Este exemplo mostra todos os critérios, mas para seus próprios testes, experimente apenas um critério:

    Fornecer detalhes sobre o gatilho Lote

  4. Agora adicione uma ou mais ações que processam cada lote.

    Para este exemplo, adicione uma ação que envia um email quando o acionador em lote é disparado. O gatilho é executado e envia um email quando o lote tem 10 mensagens, atinge 10 MB ou após 10 minutos.

    1. No gatilho do lote, selecione Nova etapa.

    2. Na caixa de pesquisa, insira send email como o filtro. Com base em seu provedor de email, selecione um conector de email.

      Por exemplo, se você tiver uma conta corporativa ou de estudante, como @fabrikam.com ou @fabrikam.onmicrosoft.com, selecione o conector Microsoft 365 Outlook. Se você tiver uma conta pessoal, como @outlook.com ou @hotmail.com, selecione o conector Outlook.com. Este exemplo usa o conector Microsoft 365 Outlook.

    3. Selecione a ação "enviar um e-mail" para seu provedor, por exemplo:

      Selecione a ação

  5. Se solicitado, entre em sua conta de email.

  6. Defina as propriedades da ação que você adicionou.

    • Na caixa Para, insira o endereço de email do destinatário. Para fins de teste, você pode usar seu próprio endereço de email.

    • Na caixa Assunto, quando a lista de conteúdo dinâmico aparecer, selecione o campo Nome da Partição.

      Na lista de conteúdo dinâmico, selecione

      Posteriormente, no remetente do lote, você pode especificar uma chave de partição exclusiva que divide o lote de destino em subconjuntos lógicos para os quais você pode enviar mensagens. Cada conjunto possui um número exclusivo gerado pelo aplicativo lógico do remetente em lote. Esse recurso permite o uso de um único lote com várias subconjuntos e define cada subconjunto com o nome fornecido por você.

      Importante

      Uma partição tem um limite de 5.000 mensagens ou 80 MB. Se uma das condições for atendida, os Aplicativos Lógicos poderão liberar o lote, mesmo quando sua condição de liberação definida não for atendida.

    • Na caixa Body, quando a lista de conteúdo dinâmico aparecer, selecione o campo Message Id.

      O designer de fluxo de trabalho adiciona automaticamente um loop For each à ação de enviar emails porque essa ação trata a saída da ação anterior como uma coleção e não como um lote.

      Para

  7. Salve seu aplicativo lógico. Você criou agora um receptor de lote.

    Salve seu aplicativo lógico

    Importante

    Se você estiver usando o Visual Studio, antes de prosseguir para a próxima seção, certifique-se de primeiro implantar seu aplicativo lógico destinatário do lote no Azure. Caso contrário, não será possível selecionar o receptor do lote ao criar o remetente do lote.

Criar remetente em lote

Agora crie um ou mais aplicativos de lógica de remetente em lote que enviem mensagens para o aplicativo lógico de recebimento em lote. Em cada remetente do lote, você especifica o nome do lote e do destinatário do lote, o conteúdo da mensagem e quaisquer outras configurações. Opcionalmente, você pode fornecer uma chave de partição exclusiva para dividir o lote em subconjuntos lógicos para coletar mensagens com essa chave.

  • Certifique-se de que você criou e implantou o receptor do lote anteriormente, assim, ao criar o remetente do lote, será possível selecionar o receptor do lote existente como o lote de destino. Embora os receptores dos lotes não precisem saber nada sobre os remetentes dos lotes, os remetentes dos lotes deverão saber para onde enviarão as mensagens.

  • Certifique-se de que o receptor do lote e o remetente do lote compartilham a mesma região do Azure e a assinatura do Azure. Caso contrário, não será possível selecionar o receptor do lote ao criar o remetente do lote porque não estarão visíveis um para o outro.

  1. Crie outro aplicativo lógico com este nome: BatchSender

    1. Na caixa de pesquisa, insira recurrence como o filtro. Na lista de gatilhos, selecione este gatilho: Recorrência

      Adicionar gatilho Recorrência

    2. Defina o intervalo e a frequência de execução do aplicativo lógico remetente como a cada minuto.

      Defina a frequência e o intervalo do Gatilho de recorrência

  2. Adicione uma nova ação para enviar mensagens para um lote.

    1. Sob o gatilho de Recorrência, selecione Nova etapa.

    2. Na caixa de pesquisa, insira batch como filtro e selecione esta ação: Escolher um fluxo de trabalho dos Aplicativos Lógicos com gatilho em lotes

      Selecione

      Uma lista é exibida e mostra apenas os aplicativos lógicos que têm gatilhos em lotes e existem na mesma região do Azure e assinatura do Azure que seu aplicativo lógico de remetente do lote.

    3. Na lista de aplicativos lógicos, selecione o aplicativo lógico do destinatário do lote que você criou anteriormente.

      Selecione o aplicativo lógico do receptor do lote

      Importante

      Se você estiver usando o Visual Studio e não vir nenhum receptor em lote para selecionar, verifique se você criou e implantou anteriormente o receptor do lote no Azure. Se ainda não o fez, saiba como implantar seu aplicativo de lógica do receptor de lote no Azure.

    4. Na lista de ações, selecione esta ação: Batch_messages - <your-logic-app-name>

      Selecione esta ação:

  3. Defina propriedades do remetente de lote:

    Propriedade Descrição
    Nome do lote O nome do lote definido pelo aplicativo lógico do receptor, que é TestBatch neste exemplo

    Importante: o nome do lote é validado no runtime e deve corresponder ao nome especificado pelo aplicativo lógico do receptor. Alterar o nome do lote faz com que o remetente do lote falhe.

    Conteúdo da mensagem O conteúdo da mensagem que você deseja enviar

    Observação

    Os valores de propriedade Nome do Gatilho e Fluxo de Trabalho são preenchidos automaticamente do aplicativo lógico selecionado.

    Para este exemplo, adicione essa expressão, que insere a data e a hora atuais no conteúdo da mensagem que você envia ao lote:

    1. Clique dentro de o conteúdo da mensagem caixa.

    2. Quando a lista de conteúdo dinâmico aparecer, selecione Expressão.

    3. Insira a expressão utcnow() e selecione Ok.

      Em

  4. Agora, configure uma partição para o lote. Na ação BatchReceiver, abra a lista Adicionar novo parâmetro e selecione estas propriedades:

    Propriedade Descrição
    Nome da Partição Uma chave de partição exclusiva opcional a ser usada para dividir o lote de destino em subconjuntos lógicos e coletar mensagens com base nessa chave
    Id da mensagem Um identificador de mensagem opcional que é um identificador global exclusivo gerado (GUID) quando estiver vazio

    Para este exemplo, na caixa Partition Name, adicione uma expressão que gere um número aleatório entre um e cinco. Deixe a caixa ID da mensagem vazia.

    1. Clique dentro de nome da partição caixa para que apareça na lista de conteúdo dinâmica.

    2. Na lista de conteúdo dinâmico, selecione Expressão.

    3. Insira a expressão rand(1,6) e, em seguida, selecione Ok.

      Configurar uma partição para seu lote de destino

      Essa função rand gera um número entre um e cinco. Portanto, você está dividindo esse lote em cinco partições numeradas, definidas dinamicamente por esta expressão.

  5. Salve seu aplicativo lógico. Seu aplicativo lógico remetente agora parece com este exemplo:

    Salve seu aplicativo lógico remetente

Testar seus aplicativos lógicos

Para testar sua solução de envio em lote, deixe seus aplicativos lógicos em execução por alguns minutos. Em breve, você começará a receber emails em grupos de cinco, todos com a mesma chave de partição.

O aplicativo de lógica do remetente do lote é executado a cada minuto e gera um número aleatório entre um e cinco. O remetente do lote usa esse número aleatório como a chave de partição para o lote de destino ao qual você envia as mensagens. Cada vez que o lote tem cinco itens com a mesma chave de partição, o aplicativo de lógica de recebimento do lote dispara e envia mensagens para cada mensagem.

Importante

Quando você terminar o teste, desabilite o aplicativo lógico BatchSender para interromper o envio de mensagens e evitar a sobrecarga de sua caixa de entrada.

Próximas etapas