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:

  1. 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.

  2. 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

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.

  1. I Azure Portal eller Visual Studio skapar du en logikapp med det här namnet:BatchReceiver

  2. I arbetsflödesdesignern lägger du till Batch-utlösaren , som startar logikappens arbetsflöde. I sökrutan anger du batchoch väljer den här utlösaren: Batch-meddelanden

    Lägg till utlösare för

  3. Ange 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:

    Ange information om Batch-utlösare

  4. 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.

    1. Under batchutlösaren väljer du Nytt steg.

    2. 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.

    3. Välj åtgärden "skicka ett e-postmeddelande" för din leverantör, till exempel:

      Välj åtgärden

  5. Logga in på ditt e-postkonto om du uppmanas att göra det.

  6. 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 .

      I listan med dynamiskt innehåll väljer du

      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.

      För

  7. Spara logikappen. Nu har du skapat en batchmottagare.

    Spara logikappen

    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.

  1. Skapa en annan logikapp med det här namnet: BatchSender

    1. I sökrutan anger du recurrence som filter. I listan med utlösare väljer du den här utlösaren: Upprepning

      Lägg till upprepningsutlösaren

    2. Ange intervall och frekvens för att köra avsändarlogikappen varje minut.

      Ange frekvens och intervall för upprepningsutlösare

  2. Lägg till en ny åtgärd för att skicka meddelanden till en batch.

    1. Under Upprepningsutlösaren väljer du Nytt steg.

    2. 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ösare

      Välj

      En 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.

    3. I listan med logikappar väljer du den batchmottagarelogikapp som du skapade tidigare.

      Välj logikappen för batchmottagaren

      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.

    4. I åtgärdslistan väljer du den här åtgärden: Batch_messages – <namnet på din logikapp>

      Välj den här åtgärden:

  3. Ange batchavsändarens egenskaper:

    Egenskap Beskrivning
    Batchnamn Batchnamnet som definieras av mottagarlogikappen, som finns TestBatch i det här exemplet

    Viktigt! 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:

    1. Klicka i rutan Meddelandeinnehåll .

    2. När listan med dynamiskt innehåll visas väljer du Uttryck.

    3. Ange uttrycket utcnow()och välj OK.

      I Meddelandeinnehåll väljer du

  4. 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.

    1. Klicka i rutan Partitionsnamn så att listan med dynamiskt innehåll visas.

    2. I listan med dynamiskt innehåll väljer du Uttryck.

    3. Ange uttrycket rand(1,6)och välj sedan OK.

      Konfigurera en partition för målbatchen

      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.

  5. Spara logikappen. Nu ser avsändarlogikappen ut ungefär som i det här exemplet:

    Spara din avsändarlogikapp

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.

Nästa steg