Enviar, receber e enviar mensagens de processo em lote no Azure Logic Apps

Aplica-se a: Azure Logic Apps (Consumo)

Para enviar e processar mensagens em conjunto de uma forma específica como grupos, pode criar uma solução de criação de lotes. Esta solução recolhe mensagens num lote e aguarda até que os critérios especificados sejam cumpridos antes de lançar e processar as mensagens em lote. O batching pode reduzir a frequência com que a sua aplicação lógica processa mensagens.

Este guia de procedimentos mostra como criar uma solução de criação de lotes ao criar duas aplicações lógicas na mesma subscrição do Azure, na região do Azure e por esta ordem:

  1. A aplicação lógica "recetor de lotes", que aceita e recolhe mensagens num lote até que os critérios especificados sejam cumpridos para libertar e processar essas mensagens. Certifique-se de que cria primeiro este recetor de lote para que possa selecionar posteriormente o destino do lote quando criar o remetente do lote.

  2. Uma ou mais aplicações lógicas "batch sender", que enviam as mensagens para o recetor de lote criado anteriormente.

    O remetente do lote pode especificar uma chave exclusiva que particiona ou divide o lote de destino em subconjunto lógico, com base nessa chave. Por exemplo, um número de cliente é uma chave exclusiva. Desta forma, a aplicação recetora pode recolher todos os itens com a mesma chave e processá-los em conjunto.

O recetor de lotes e o remetente do lote têm de partilhar a mesma subscrição do Azure e a mesma região do Azure. Se não o fizerem, não pode selecionar o recetor de lotes quando cria o remetente do lote porque não estão visíveis um para o outro.

Pré-requisitos

Limitações

  • Só pode verificar o conteúdo num lote após o lançamento ao comparar os conteúdos lançados com a origem.

  • Só pode libertar um lote mais cedo ao alterar os critérios de lançamento no recetor de lotes, que é descrito neste guia, enquanto o acionador ainda tem o lote. No entanto, o acionador utiliza os critérios de lançamento atualizados para quaisquer mensagens não enviadas.

Criar recetor de lote

Antes de poder enviar mensagens para um lote, esse lote tem primeiro de existir como o destino para onde envia essas mensagens. Primeiro, tem de criar a aplicação lógica "recetor de lotes", que começa com o acionador do Batch . Desta forma, quando criar a aplicação lógica "batch sender", pode selecionar a aplicação lógica recetora em lote. O recetor de lotes continua a recolher mensagens até que os critérios especificados sejam cumpridos para libertar e processar essas mensagens. Embora os recetores de lotes não precisem de saber nada sobre remetentes de lotes, os remetentes em lote têm de saber o destino para onde enviam as mensagens.

  1. No portal do Azure ou Visual Studio, crie uma aplicação lógica com este nome:BatchReceiver

  2. No estruturador do fluxo de trabalho, adicione o acionador do Batch , que inicia o fluxo de trabalho da aplicação lógica. Na caixa de pesquisa, introduza batche selecione este acionador: Mensagens do Batch

    Acionador Adicionar

  3. Defina estas propriedades para o recetor de lotes:

    Propriedade Descrição
    Modo Batch - Inline: para definir critérios de versão dentro do acionador de lote
    - Conta de Integração: para definir várias configurações de critérios de versão através de uma conta de integração. Com uma conta de integração, pode manter estas configurações num único local e não em aplicações lógicas separadas.
    Nome do Batch O nome do seu lote, que é "TestBatch" neste exemplo, e aplica-se apenas ao modo de lote Inline
    Critérios de Versão Aplica-se apenas ao modo de lote Inline e seleciona os critérios a cumprir antes de processar cada lote:

    - Contagem de mensagens com base em: liberte o lote com base no número de mensagens recolhidas pelo lote.
    - Baseado em tamanho: liberte o lote com base no tamanho total em bytes para todas as mensagens recolhidas por esse lote.
    - Agenda: liberte o lote com base numa agenda de periodicidade, que especifica um intervalo e uma frequência. Nas opções avançadas, também pode selecionar um fuso horário e fornecer uma data e hora de início.
    - Selecione todos: utilize todos os critérios especificados.

    Contagem de Mensagens O número de mensagens a recolher no lote, por exemplo, 10 mensagens. O limite de um lote é de 8000 mensagens.
    Tamanho do Lote O tamanho total em bytes a recolher 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 em lote, por exemplo, 10 minutos. A periodicidade mínima é de 60 segundos ou 1 minuto. Os minutos fracionários são efetivamente arredondados até 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.

    Nota

    Se alterar os critérios de versão enquanto o acionador ainda tiver mensagens em lote, mas não enviadas, o acionador utiliza os critérios de lançamento atualizados para processar as mensagens não enviadas.

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

    Indique os detalhes do acionador do Batch

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

    Para este exemplo, adicione uma ação que envia um e-mail quando o acionador do lote é acionado. O acionador é executado e envia um e-mail quando o lote tem 10 mensagens, atinge 10 MB ou após 10 minutos de passagem.

    1. No acionador de lote, selecione Novo passo.

    2. Na caixa de pesquisa, introduza send email como filtro. Com base no seu fornecedor de e-mail, selecione um conector de e-mail.

      Por exemplo, se tiver uma conta escolar ou profissional, como @fabrikam.com ou @fabrikam.onmicrosoft.com, selecione o conector do Outlook do Microsoft 365 . Se tiver uma conta pessoal, como @outlook.com ou @hotmail.com, selecione o conector Outlook.com . Este exemplo utiliza o conector do Outlook do Microsoft 365.

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

      Selecione a ação

  5. Se tal lhe for solicitado, inicie sessão na sua conta de e-mail.

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

    • Na caixa Para, introduza o endereço de e-mail do destinatário. Para fins de teste, pode utilizar o seu próprio endereço de e-mail.

    • Na caixa Assunto , quando a lista de conteúdos dinâmicos for apresentada, selecione o campo Nome da Partição .

      Na lista de conteúdos dinâmicos, selecione

      Mais tarde, no remetente do lote, pode especificar uma chave de partição exclusiva que divide o lote de destino em subconjunto lógico onde pode enviar mensagens. Cada conjunto tem um número exclusivo gerado pela aplicação lógica do remetente de lote. Esta capacidade permite-lhe utilizar um único lote com vários subconjunto e definir cada subconjunto com o nome que fornecer.

      Importante

      Uma partição tem um limite de 5000 mensagens ou 80 MB. Se uma das condições for cumprida, o Logic Apps poderá lançar o lote, mesmo quando a condição de lançamento definida não for cumprida.

    • Na caixa Corpo , quando a lista de conteúdos dinâmicos for apresentada, selecione o campo ID da Mensagem .

      O estruturador de fluxo de trabalho adiciona automaticamente um ciclo Para cada ciclo em torno da ação enviar e-mail porque essa ação trata o resultado da ação anterior como uma coleção, em vez de um lote.

      Para

  7. Guarde a sua aplicação lógica. Criou agora um recetor de lote.

    Guardar a sua aplicação lógica

    Importante

    Se estiver a utilizar o Visual Studio, antes de avançar para a secção seguinte, certifique-se de que implementa primeiro a sua aplicação lógica de recetor de lotes no Azure. Caso contrário, não pode selecionar o recetor de lotes quando criar o remetente do lote.

Criar remetente de lote

Agora, crie uma ou mais aplicações lógicas de remetente em lote que enviam mensagens para a aplicação lógica do recetor de lotes. Em cada remetente de lote, especifique o nome do lote e o nome do lote, o conteúdo da mensagem e quaisquer outras definições. Opcionalmente, pode fornecer uma chave de partição exclusiva para dividir o lote em subconjunto lógico para recolher mensagens com essa chave.

  • Certifique-se de que criou e implementou anteriormente o recetor de lotes para que, quando criar o remetente do lote, possa selecionar o recetor de lote existente como o lote de destino. Embora os recetores de lotes não precisem de saber nada sobre remetentes de lotes, os remetentes em lote têm de saber para onde enviar mensagens.

  • Certifique-se de que o recetor de lotes e o remetente do lote partilham a mesma região do Azure e a mesma subscrição do Azure. Se não o fizerem, não pode selecionar o recetor de lotes quando cria o remetente do lote porque não estão visíveis um para o outro.

  1. Crie outra aplicação lógica com este nome: BatchSender

    1. Na caixa de pesquisa, introduza recurrence como filtro. Na lista de acionadores, selecione este acionador: Periodicidade

      Adicionar o acionador Periodicidade

    2. Defina o intervalo e a frequência para executar a aplicação lógica do remetente a cada minuto.

      Definir frequência e intervalo para o acionador periodicidade

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

    1. No acionador Periodicidade , selecione Novo passo.

    2. Na caixa de pesquisa, introduza batch como filtro e selecione esta ação: Escolher um fluxo de trabalho do Logic Apps com acionador de lote

      Selecione

      É apresentada uma lista que mostra apenas as aplicações lógicas que têm acionadores em lote e existem na mesma região do Azure e subscrição do Azure que a sua aplicação lógica de remetente de lote.

    3. Na lista de aplicações lógicas, selecione a aplicação lógica recetora em lote que criou anteriormente.

      Selecione a sua aplicação lógica de recetor de lotes

      Importante

      Se estiver a utilizar o Visual Studio e não vir nenhum recetor de lote para selecionar, verifique se criou e implementou anteriormente o recetor de lotes no Azure. Se ainda não o fez, saiba como implementar a sua aplicação lógica de recetor de lotes no Azure.

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

      Selecione esta ação:

  3. Defina as propriedades do remetente do lote:

    Propriedade Descrição
    Nome do Batch O nome do lote definido pela aplicação lógica recetora, que está TestBatch neste exemplo

    Importante: o nome do lote é validado no runtime e tem de corresponder ao nome especificado pela aplicação lógica do recetor. Alterar o nome do lote faz com que o remetente do lote falhe.

    Conteúdo da Mensagem O conteúdo da mensagem que pretende enviar

    Nota

    Os valores da propriedade Nome do Acionador e Fluxo de Trabalho são preenchidos automaticamente a partir da sua aplicação lógica selecionada.

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

    1. Clique dentro da caixa Conteúdo da Mensagem .

    2. Quando a lista de conteúdos dinâmicos for apresentada, selecione Expressão.

    3. Introduza 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 utilizar para dividir o lote de destino em subconjunto lógico e recolher mensagens com base nessa chave
    ID da Mensagem Um identificador de mensagem opcional que é um identificador exclusivo global gerado (GUID) quando está vazio

    Neste exemplo, na caixa Nome da Partição , 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 da caixa Nome da Partição para que a lista de conteúdos dinâmicos seja apresentada.

    2. Na lista de conteúdos dinâmicos, selecione Expressão.

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

      Configurar uma partição para o lote de destino

      Esta função rand gera um número entre um e cinco. Portanto, está a dividir este lote em cinco partições numeradas, que esta expressão define dinamicamente.

  5. Guarde a sua aplicação lógica. A sua aplicação lógica de remetente tem agora um aspeto semelhante a este exemplo:

    Guardar a aplicação lógica do remetente

Testar as suas aplicações lógicas

Para testar a sua solução de criação de lotes, deixe as aplicações lógicas em execução durante alguns minutos. Em breve, começará a receber e-mails em grupos de cinco, todos com a mesma chave de partição.

A sua aplicação lógica de remetente em lote é executada a cada minuto e gera um número aleatório entre um e cinco. O remetente de lote utiliza este número aleatório como a chave de partição para o lote de destino para onde envia as mensagens. Sempre que o lote tiver cinco itens com a mesma chave de partição, a aplicação lógica do recetor de lotes é acionada e envia correio para cada mensagem.

Importante

Quando terminar o teste, certifique-se de que desativa a aplicação BatchSender lógica para parar de enviar mensagens e evitar sobrecarregar a sua caixa de entrada.

Passos seguintes