Skicka, ta emot och batcharbeta meddelanden i Azure Logic Apps
Gäller för: Azure Logic Apps (förbrukning)
Om du vill skicka och bearbeta meddelanden tillsammans på ett specifikt sätt som grupper kan du skapa en batchlösning. Den här lösningen samlar in meddelanden i en batch och väntar tills de angivna kriterierna har uppfyllts innan de batchbaserade meddelandena släpps och bearbetas. Batchbearbetning kan minska hur ofta logikappen bearbetar meddelanden.
Den här instruktionsguiden visar hur du skapar en batchlösning genom att skapa två logikappar i samma Azure-prenumeration, Azure-region och i följande ordning:
Logikappen "batchmottagare", som accepterar och samlar in meddelanden i en batch tills dina angivna kriterier uppfylls för att släppa och bearbeta dessa meddelanden. Se till att du först skapar den här batchmottagaren så att du senare kan välja batchmålet när du skapar batch-avsändaren.
En eller flera logikappar för "batch-avsändare" som skickar meddelandena till den tidigare skapade batchmottagaren.
Batchavsändaren kan ange en unik nyckel som partitionerar eller delar upp målbatchen i logiska delmängder baserat på den nyckeln. Ett kundnummer är till exempel en unik nyckel. På så sätt kan mottagarappen samla in alla objekt med samma nyckel och bearbeta dem tillsammans.
Batch-mottagaren och batchsändaren måste dela samma Azure-prenumeration och Azure-region. Om de inte gör det kan du inte välja batchmottagaren när du skapar batch-avsändaren eftersom de inte är synliga för varandra.
Förutsättningar
Ett Azure-konto och prenumeration. Om du inte har en prenumeration kan du börja med ett kostnadsfritt Azure-konto. Eller registrera dig för en betala per användning-prenumeration.
Ett e-postkonto med valfri e-postleverantör som stöds av Azure Logic Apps
Viktigt
Om du vill använda Gmail-anslutningsappen kan endast G-Suite-företagskonton använda den här anslutningsappen utan begränsning i logikappar. Om du har ett Gmail-konsumentkonto kan du använda den här anslutningsappen med endast specifika Google-godkända tjänster, eller så kan du skapa en Google-klientapp som ska användas för autentisering med gmail-anslutningsappen. Mer information finns i Datasäkerhets- och sekretesspolicyer för Google-anslutningsappar i Azure Logic Apps.
Grundläggande kunskaper om arbetsflöden för logikappar
Om du vill använda Visual Studio i stället för Azure Portal kontrollerar du att du har konfigurerat Visual Studio för att arbeta med Logic Apps.
Begränsningar
Du kan bara kontrollera innehållet i en batch efter lanseringen genom att jämföra det utgivna innehållet med källan.
Du kan bara släppa en batch tidigt genom att ändra versionsvillkoren i batchmottagaren, vilket beskrivs i den här guiden, medan utlösaren fortfarande har batchen. Utlösaren använder dock de uppdaterade versionskriterierna för alla meddelanden som inte har släppts.
Skapa batchmottagare
Innan du kan skicka meddelanden till en batch måste batchen först finnas som mål där du skickar dessa meddelanden. Först måste du skapa logikappen "batch receiver", som börjar med Batch-utlösaren . På så sätt kan du välja logikappen för batchmottagare när du skapar logikappen "batch sender". Batch-mottagaren fortsätter att samla in meddelanden tills dina angivna villkor uppfylls för att släppa och bearbeta dessa meddelanden. Batch-mottagare behöver inte veta något om batchavsändare, men batchavsändare måste känna till målet där de skickar meddelandena.
I Azure Portal eller Visual Studio skapar du en logikapp med det här namnet:
BatchReceiver
I arbetsflödesdesignern lägger du till Batch-utlösaren , som startar logikappens arbetsflöde. I sökrutan anger du
batch
och väljer den här utlösaren: Batch-meddelandenAnge följande egenskaper för batchmottagaren:
Egenskap Beskrivning Batchläge - Infogad: För att definiera versionskriterier i batchutlösaren
- Integrationskonto: För att definiera flera konfigurationer av versionskriterier via ett integrationskonto. Med ett integrationskonto kan du underhålla dessa konfigurationer på ett och samma ställe i stället för i separata logikappar.Batchnamn Namnet på batchen, som är "TestBatch" i det här exemplet, och gäller endast för infogat batchläge Versionskriterier Gäller endast för infogat batchläge och väljer de kriterier som ska uppfyllas innan varje batch bearbetas: - Meddelandeantal baserat: Släpp batchen baserat på antalet meddelanden som samlas in av batchen.
- Storleksbaserad: Frigör batchen baserat på den totala storleken i byte för alla meddelanden som samlas in av den batchen.
- Schema: Frigör batchen baserat på ett upprepningsschema, som anger ett intervall och en frekvens. I de avancerade alternativen kan du också välja en tidszon och ange startdatum och tid.
- Markera alla: Använd alla angivna villkor.Antal meddelanden Antalet meddelanden som ska samlas in i batchen, till exempel 10 meddelanden. En batchgräns är 8 000 meddelanden. Batchstorlek Den totala storleken i byte som ska samlas in i batchen, till exempel 10 MB. En batchs storleksgräns är 80 MB. Schema Intervallet och frekvensen mellan batchversioner, till exempel 10 minuter. Den minsta upprepningen är 60 sekunder eller 1 minut. Bråkminuter avrundas effektivt upp till 1 minut. Om du vill ange en tidszon eller ett startdatum och en starttid öppnar du listan Lägg till ny parameter och väljer motsvarande egenskaper. Anteckning
Om du ändrar versionsvillkoren medan utlösaren fortfarande har batchkopplade men oentliga meddelanden använder utlösaren de uppdaterade versionskriterierna för att hantera de osedda meddelandena.
Det här exemplet visar alla kriterier, men för din egen testning kan du bara prova ett kriterium:
Lägg nu till en eller flera åtgärder som bearbetar varje batch.
I det här exemplet lägger du till en åtgärd som skickar ett e-postmeddelande när batchutlösaren utlöses. Utlösaren kör och skickar ett e-postmeddelande när batchen antingen har 10 meddelanden, når 10 MB eller efter 10 minuters pass.
Under batchutlösaren väljer du Nytt steg.
I sökrutan anger du
send email
som filter. Välj en e-postanslutning baserat på din e-postleverantör.Om du till exempel har ett arbets- eller skolkonto, till exempel @fabrikam.com eller @fabrikam.onmicrosoft.com, väljer du Microsoft 365 Outlook-anslutningsappen . Om du har ett personligt konto, till exempel @outlook.com eller @hotmail.com, väljer du Outlook.com-anslutningsappen. I det här exemplet används Anslutningsappen för Microsoft 365 Outlook.
Välj åtgärden "skicka ett e-postmeddelande" för din leverantör, till exempel:
Logga in på ditt e-postkonto om du uppmanas att göra det.
Ange egenskaperna för den åtgärd som du lade till.
Ange mottagarens e-postadress i fältet Till. I testsyfte kan du använda din egen e-postadress.
När listan med dynamiskt innehåll visas i rutan Ämne väljer du fältet Partitionsnamn .
Senare kan du i batchavsändaren ange en unik partitionsnyckel som delar upp målbatchen i logiska delmängder där du kan skicka meddelanden. Varje uppsättning har ett unikt tal som genereras av logikappen för batch-avsändare. Med den här funktionen kan du använda en enda batch med flera underuppsättningar och definiera varje delmängd med det namn som du anger.
Viktigt
En partition har en gräns på 5 000 meddelanden eller 80 MB. Om något av villkoren uppfylls kan Logic Apps släppa batchen, även om ditt definierade versionsvillkor inte uppfylls.
När listan med dynamiskt innehåll visas i rutan Brödtext väljer du fältet Meddelande-ID .
Arbetsflödesdesignern lägger automatiskt till en För varje loop runt åtgärden skicka e-post eftersom den åtgärden behandlar utdata från föregående åtgärd som en samling i stället för en batch.
Spara logikappen. Nu har du skapat en batchmottagare.
Viktigt
Om du använder Visual Studio måste du först distribuera logikappen för batchmottagaren till Azure innan du fortsätter till nästa avsnitt. Annars kan du inte välja batchmottagaren när du skapar batch-avsändaren.
Skapa batch-avsändare
Skapa nu en eller flera logikappar för batch-avsändare som skickar meddelanden till logikappen för batchmottagare. I varje batchsändare anger du batchmottagaren och batchnamnet, meddelandeinnehållet och andra inställningar. Du kan också ange en unik partitionsnyckel för att dela in batchen i logiska delmängder för att samla in meddelanden med den nyckeln.
Kontrollera att du tidigare har skapat och distribuerat batchmottagaren så att du kan välja den befintliga batchmottagaren som målbatch när du skapar batchsändaren. Batch-mottagare behöver inte veta något om batchavsändare, men batchavsändare måste veta var meddelanden ska skickas.
Se till att batchmottagaren och batchsändaren delar samma Azure-region och Azure-prenumeration. Om de inte gör det kan du inte välja batchmottagaren när du skapar batch-avsändaren eftersom de inte är synliga för varandra.
Skapa en annan logikapp med det här namnet:
BatchSender
I sökrutan anger du
recurrence
som filter. I listan med utlösare väljer du den här utlösaren: UpprepningAnge intervall och frekvens för att köra avsändarlogikappen varje minut.
Lägg till en ny åtgärd för att skicka meddelanden till en batch.
Under Upprepningsutlösaren väljer du Nytt steg.
I sökrutan anger du
batch
som filter och väljer den här åtgärden: Välj ett Logic Apps-arbetsflöde med batchutlösareEn lista visas och visar endast de logikappar som har batchutlösare och som finns i samma Azure-region och Azure-prenumeration som din batch-avsändarlogikapp.
I listan med logikappar väljer du den batchmottagarelogikapp som du skapade tidigare.
Viktigt
Om du använder Visual Studio och inte ser några batchmottagare att välja, kontrollerar du att du tidigare har skapat och distribuerat batchmottagaren till Azure. Om du inte har gjort det lär du dig hur du distribuerar logikappen för batchmottagare till Azure.
I åtgärdslistan väljer du den här åtgärden: Batch_messages – <namnet på din logikapp>
Ange batchavsändarens egenskaper:
Egenskap Beskrivning Batchnamn Batchnamnet som definieras av mottagarlogikappen, som finns TestBatch
i det här exempletViktigt! Batchnamnet verifieras vid körning och måste matcha namnet som anges av mottagarlogikappen. Om batchnamnet ändras misslyckas batch-avsändaren.
Meddelandeinnehåll Innehållet i det meddelande som du vill skicka Anteckning
Egenskapsvärdena Utlösarnamn och Arbetsflöde fylls i automatiskt från den valda logikappen.
I det här exemplet lägger du till det här uttrycket, som infogar aktuellt datum och tid i meddelandeinnehållet som du skickar till batchen:
Klicka i rutan Meddelandeinnehåll .
När listan med dynamiskt innehåll visas väljer du Uttryck.
Ange uttrycket
utcnow()
och välj OK.
Konfigurera nu en partition för batchen. I åtgärden
BatchReceiver
öppnar du listan Lägg till ny parameter och väljer följande egenskaper:Egenskap Beskrivning Partitionsnamn En valfri unik partitionsnyckel som ska användas för att dela upp målbatchen i logiska delmängder och samla in meddelanden baserat på den nyckeln Meddelande-ID En valfri meddelandeidentifierare som är en genererad globalt unik identifierare (GUID) när den är tom I det här exemplet lägger du till ett uttryck i rutan Partitionsnamn som genererar ett slumpmässigt tal mellan ett och fem. Lämna rutan Meddelande-ID tom.
Klicka i rutan Partitionsnamn så att listan med dynamiskt innehåll visas.
I listan med dynamiskt innehåll väljer du Uttryck.
Ange uttrycket
rand(1,6)
och välj sedan OK.Den här randfunktionen genererar ett tal mellan ett och fem. Därför delar du upp den här batchen i fem numrerade partitioner, som det här uttrycket anger dynamiskt.
Spara logikappen. Nu ser avsändarlogikappen ut ungefär som i det här exemplet:
Testa dina logikappar
Om du vill testa batchlösningen lämnar du logikapparna igång i några minuter. Snart börjar du få e-postmeddelanden i grupper om fem, alla med samma partitionsnyckel.
Logikappen för batch-avsändare körs varje minut och genererar ett slumpmässigt tal mellan ett och fem. Batch-avsändaren använder det här slumpmässiga talet som partitionsnyckel för målbatchen där du skickar meddelandena. Varje gång batchen har fem objekt med samma partitionsnyckel utlöses logikappen för batchmottagaren och skickar e-post för varje meddelande.
Viktigt
När du är klar med testningen ser du till att inaktivera logikappen BatchSender
för att sluta skicka meddelanden och undvika att överbelasta inkorgen.