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:
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.
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
Uma conta e subscrição do Azure. Se não tiver uma subscrição, pode começar com uma conta do Azure gratuita. Em alternativa, inscreva-se numa subscrição Pay As You Go.
Uma conta de e-mail com qualquer fornecedor de e-mail suportado pelo Azure Logic Apps
Importante
Se quiser utilizar o conector do Gmail, apenas as contas empresariais do G-Suite podem utilizar este conector sem restrições nas aplicações lógicas. Se tiver uma conta de consumidor do Gmail, pode utilizar este conector apenas com serviços específicos aprovados pela Google ou pode criar uma aplicação cliente Google para utilizar para autenticação com o seu conector do Gmail. Para obter mais informações, veja Políticas de privacidade e segurança de dados para conectores do Google no Azure Logic Apps.
Conhecimentos básicos sobre fluxos de trabalho de aplicações lógicas
Para utilizar o Visual Studio em vez do portal do Azure, certifique-se de que configura o Visual Studio para trabalhar com o Logic Apps.
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.
No portal do Azure ou Visual Studio, crie uma aplicação lógica com este nome:
BatchReceiver
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
batch
e selecione este acionador: Mensagens do BatchDefina 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:
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.
No acionador de lote, selecione Novo passo.
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.
Selecione a ação "enviar um e-mail" para o seu fornecedor, por exemplo:
Se tal lhe for solicitado, inicie sessão na sua conta de e-mail.
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 .
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.
Guarde a sua aplicação lógica. Criou agora um recetor de lote.
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.
Crie outra aplicação lógica com este nome:
BatchSender
Na caixa de pesquisa, introduza
recurrence
como filtro. Na lista de acionadores, selecione este acionador: PeriodicidadeDefina o intervalo e a frequência para executar a aplicação lógica do remetente a cada minuto.
Adicione uma nova ação para enviar mensagens para um lote.
No acionador Periodicidade , selecione Novo passo.
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É 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.
Na lista de aplicações lógicas, selecione a aplicação lógica recetora em lote que criou anteriormente.
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.
Na lista de ações, selecione esta ação: Batch_messages - <your-logic-app-name>
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 exemploImportante: 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:
Clique dentro da caixa Conteúdo da Mensagem .
Quando a lista de conteúdos dinâmicos for apresentada, selecione Expressão.
Introduza a expressão
utcnow()
e selecione OK.
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.
Clique dentro da caixa Nome da Partição para que a lista de conteúdos dinâmicos seja apresentada.
Na lista de conteúdos dinâmicos, selecione Expressão.
Introduza a expressão
rand(1,6)
e, em seguida, selecione OK.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.
Guarde a sua aplicação lógica. A sua aplicação lógica de remetente tem agora um aspeto semelhante a este exemplo:
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.