Batchbearbeta och utbyta meddelanden i grupper mellan arbetsflöden i Azure Logic Apps

Gäller för: Azure Logic Apps (Förbrukning + Standard)

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 uppfylls 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 den här ordningen:

  1. Logikappen "batchmottagare", som accepterar och samlar in meddelanden till en batch tills dina angivna villkor uppfylls för att släppa och bearbeta dessa meddelanden. Skapa denna batchmottagare först så att du senare kan välja batchdestinationen 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 partitioner 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.

Batchmottagaren 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 releasekriterierna i batchmottagaren medan triggern fortfarande har batchen (som beskrivs i denna guide). Triggern använder sedan de uppdaterade frigivningskriterierna för alla oskickade meddelanden.

Skapa batchmottagare

Innan du kan skicka meddelanden till en batch måste den batchen först finnas som mål där du skickar dessa meddelanden. Först måste du alltså skapa logikapparbetsflödet "batch receiver", som börjar med Batch-utlösaren. På så sätt kan du, när du skapar arbetsflödet för logikappen "batch sender", välja arbetsflödet för logikappen batchmottagare. 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 skapar du en logikappresurs med ett tomt arbetsflöde.

    I det här exemplet skapas en logikapp för batchmottagare och ett arbetsflöde med namnet BatchReceiver.

  2. I arbetsflödesdesignern väljer du Lägg till en utlösare och följer dessa allmänna steg för att lägga till Batch Operations-utlösaren med namnet Batch-utlösare.

  3. Ange följande utlösaregenskaper:

    Egenskap beskrivning
    läge
    (Endast förbrukningsarbetsflöden)
    - Inline: Använd detta läge för att definiera releasekriterier i batch-triggern.

    - Integrationskonto: Använd detta läge för att definiera flera konfigurationer av versionskriterier via ett integrationskonto. Genom att använda ett integrationskonto kan du hålla dessa konfigurationer samlade på ett ställe istället för i separata logikapp-resurser.
    Batchnamn Namnet på batchen. I Konsumtionsarbetsflöden visas denna egenskap endast när du sätter läget till Inline. I det här exemplet används TestBatch.
    Frigivningskriterier De kriterier som ska uppfyllas innan varje batch bearbetas. Som standardläge fungerar batchutlösaren med hjälp av "inline-läge" där du definierar batchutgivningskriterierna inom batchutlösaren.

    - Meddelandeantalbaserad: Frigör batchen baserat på antalet meddelanden som samlas in.

    - Storleksbaserad: Frigör batchen baserat på den totala storleken i byte för alla meddelanden som samlas in av den batchen.

    - Schemabaserat: Frigör batchen baserat på ett upprepningsschema, som anger ett intervall och en frekvens. Du kan välja en tidszon och ange startdatum och tid.

    Om du vill använda alla angivna villkor väljer du alla alternativ.
    Antal meddelanden Antalet meddelanden som ska samlas in i batchen, till exempel 10 meddelanden. Batchmeddelandegränsen är 8 000 meddelanden.
    Batchstorlek Den totala bytestorleken för meddelanden som ska samlas in i batchen, till exempel 10 MB eller 10 485 760 byte. Batchstorleksgränsen är 80 MB.
    Återkommande Intervallet och frekvensen mellan batchversioner, till exempel 10 minuter. Den minsta upprepningen är 60 sekunder eller 1 minut. Delminuter avrundas effektivt till 1 minut. Du kan också välja en tidszon och ange ett startdatum och en starttid.

    Kommentar

    Om du ändrar releasekriterierna medan batchtriggern innehåller batchade och oskickade meddelanden, använder triggern de uppdaterade releasekriterierna för att hantera de oskickade meddelandena.

    Det här exemplet visar alla kriterier, men för din egen testning kan du bara prova ett kriterium:

    Skärmdump som visar alla kriterier för batch-triggern.

  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 batch-triggern, välj plustecknet (+) för att lägga till en åtgärd.

    2. Följ de här allmänna stegen för att lägga till en åtgärd som skickar ett e-postmeddelande baserat på din e-postleverantör.

      Om du till exempel har ett arbets- eller skolkonto, till exempel @contoso.com eller @contoso.onmicrosoft.com, väljer du Microsoft 365 Outlook-anslutningsappen. Om du har ett personligt konto, till exempel @outlook.com eller , väljer du Outlook.com-anslutningsappen@hotmail.com. I det här exemplet används Anslutningsappen för Microsoft 365 Outlook.

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

  6. Ange följande åtgärdsegenskaper:

    • Ange mottagarens e-postadress i fältet Till. I testsyfte kan du använda din egen e-postadress.

    • Välj i rutan Ämne för att visa alternativen för listan med dynamiskt innehåll (blixtikonen) och uttrycksredigeraren (funktionsikonen). Välj blixtikonen för att öppna listan med dynamiskt innehåll och välj fältet partitionsnamn.

      Skärmdump som visar den dynamiska innehållslistan och det valda fältet för egenskapen Partition Name.

      Senare i batchavsändaren kan du ange en unik partitionsnyckel som delar upp målbatchen i logiska delmängder där du kan skicka meddelanden. Varje set har ett unikt nummer som arbetsflödet för batchavsändarens logikapplikation genererar. Med den här funktionen kan du använda en enda batch med flera delmängder 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 Azure Logic Apps släppa batchen, även om ditt definierade versionsvillkor inte uppfylls.

    • Välj i rutan Brödtext , välj blixtikonen för att öppna listan med dynamiskt innehåll och välj fältet Meddelandemeddelande-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öljande exempel visar informationsfönstret när du har valt titelrutan För varje på designern där Batchade objekt är samlingsnamnet:

      Skärmbild som visar informationsfönstret För varje med samlingen Batchade objekt i fältet Välj utdata från föregående steg.

  7. Spara arbetsflödet. Du skapade din batchmottagare.

    Viktigt!

    Om du använder Visual Studio Code måste du först distribuera batchmottagarens logikappresurs till Azure innan du fortsätter till nästa avsnitt. Annars kan du inte välja arbetsflödet för logikappen för batchmottagare när du skapar arbetsflödet för batchsändarlogikappen.

Skapa batch-avsändare

Skapa nu ett eller flera arbetsflöden för batchsändarlogikappen som skickar meddelanden till arbetsflödet för 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 underuppsättningar 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.

  • Kontrollera 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 logikappresurs och ett annat arbetsflöde med namnet BatchSender.

    Kommentar

    Om du har en standardlogikappresurs måste du skapa ett tillståndskänsligt arbetsflöde, inte ett tillståndslöst arbetsflöde eftersom upprepningsutlösaren inte är tillgänglig för tillståndslösa arbetsflöden.

  2. Följ de här allmänna stegen för att lägga till schemautlösaren med namnet Återkommande.

    I det här exemplet anges intervallet och frekvensen för att köra avsändararbetsflödet varje minut.

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

    1. Under Recurrence-triggern markerar du plustecknet (+) för att lägga till en åtgärd.

    2. Följ de här allmänna stegen för att lägga till en Batch Operations-åtgärd med namnet Send to batch trigger workflow (Consumption workflow) eller Send to batch (Standard workflow).

    3. Baserat på om du har ett arbetsflöde för förbrukning eller standardarbetsflöde följer du motsvarande steg:

      Arbetsflöde för förbrukning

      När du har lagt till arbetsflödesåtgärden Skicka till batch-utlösare visas en lista och visar endast logikappresurserna med batchutlösare som finns i samma Azure-prenumeration och Azure-region som din batch-avsändarlogikappresurs.

      1. I listan med logikappar väljer du den tidigare skapade logikappen som ska användas som batchmottagare. När de tillgängliga utlösarna visas väljer du utlösaren med namnet Batch_messages.

        Skärmdump som visar konsumtionsflödet med återkomsttriggern. Batchavsändaråtgärden 'Skicka till batchutlösar-arbetsflödet' visas med Batch_messages valt som batchmottagarens logikapp resurs och trigger.

        Viktigt!

        Om du använder Visual Studio Code och du inte ser några batchmottagare att välja kontrollerar du att du tidigare skapade och distribuerade batchmottagaren till Azure. Om du inte har gjort det får du lära dig hur du distribuerar logikappresursen för batchmottagare till Azure.

      2. När du är klar väljer du Lägg till åtgärd.

      Standardarbetsflöde

      Efter att du lagt till åtgärden Skicka till batch visar åtgärdspanelen de egenskaper för batchmottagaråtgärd som listas i följande steg. I detta åtgärdsfönster anger du batchnamn, meddelandeinnehåll, arbetsflödesnamn och triggernamn. Batchmottagarens logikapp-arbetsflöde kan endast acceptera en batchutlösare i samma Azure-prenumeration och Azure-region som batchavsändarens logikapp.

      Skärmdumpen visar Standardarbetsflödet med Recurrence-triggern. Skärmen för Skicka till batchens åtgärd visas med TestBatch som batchnamn och Batch_messages som triggernamn.

  4. Ange följande egenskaper för batchmottagarens åtgärd:

    Egenskap beskrivning
    Batchnamn Batchnamnet som definieras av mottagarlogiken, som är TestBatch i det här exemplet

    Viktigt: Batchnamnet verifieras vid körning och måste matcha det namn som anges av logikappen för batchmottagare. Om batchnamnet ändras misslyckas batchsändaren.
    Meddelandeinnehåll Innehållet för det meddelande som du vill skicka. Se följande exempel för det värde som ska användas.
    Arbetsflödesnamn
    (Endast standardarbetsflöden)
    Namnet på arbetsflödet som har en batchutlösare.
    Utlösarnamn Namnet på batchutlösaren i arbetsflödet för batchmottagarens logikapp. I Förbrukningsarbetsflöden fylls det här värdet automatiskt i från den valda batchmottagarelogikappen.
    Arbetsflödes-id ID:t för arbetsflödet som har batchutlösarens namn batch receiver logic app workflow. I Förbrukningsarbetsflöden fylls det här värdet automatiskt i från den valda batchmottagarelogikappen.

    I det här exemplet lägger du till följande uttryck för egenskapen Meddelandeinnehåll , som infogar aktuellt datum och tid i meddelandeinnehållet som du skickar till batchen:

    1. Välj i rutan Meddelandeinnehåll för att visa alternativen för dynamiskt innehåll (blixtikon) och uttrycksredigeraren (funktionsikon).

    2. Välj funktionsikonen för att öppna uttrycksredigeraren.

    3. I editorn skriver du in funktionen som heter utcnow(), och väljer Lägg till i redigeraren.

      Arbetsflöde för förbrukning

      Skärmdump som visar arbetsflödet för konsumtion med batchmottagarens åtgärdspanel. Fälten Batchnamn, Triggernamn och Arbetsflödes-ID fylls i, och utcNow-funktionen väljs i uttrycksredigeraren för att fylla i fältet Meddelandeinnehåll.

      Standardarbetsflöde

      Skärmdump av Standardarbetsflödet som visar åtgärdspanelen Skicka till batch. Fälten Batchnamn, Triggernamn och Arbetsflödes-ID fylls i, och utcNow-funktionen väljs i uttrycksredigeraren för att fylla i fältet Meddelandeinnehåll.

  5. Konfigurera nu en partition för batchen.

    1. I åtgärdsfönstret batchavsändare går du till listan Avancerade parametrar 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.

      I det här exemplet kan du se följande steg för att lägga till ett uttryck som genererar ett slumpmässigt tal mellan ett och fem.
      Meddelande-ID En valfri meddelandeidentifierare som är en genererad globalt unik identifierare (GUID) när den är tom. I det här exemplet lämnar du det här värdet tomt.
    2. Välj i rutan Partitionsnamn och välj alternativet för uttrycksredigeraren (funktionsikonen).

    3. I uttrycksredigeraren, ange funktionen rand(1,6), och välj Lägg till.

      Det här exemplet 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 dynamiskt anger.

      Skärmdump som visar rand()-funktionen som delar upp en batch i partitioner.

      När du är klar ser arbetsflödet för batchsändararbetsflödet nu ut ungefär som i följande exempel, baserat på arbetsflödestypen för logikappen:

      Arbetsflöde för förbrukning

      Skärmdump visar färdig batchavsändare Consumption Logic App-arbetsflöde.

      Standardarbetsflöde

      Skärmdump visar arbetsflödet för den färdiga batchavsändaren i Standard-logikappen.

  6. Spara arbetsflödet.

Testa dina arbetsflöden

Om du vill testa batchlösningen låter du logikappens arbetsflöden köras i några minuter. Snart börjar du få e-postmeddelanden i grupper om fem, alla med samma partitionsnyckel.

Batchsändarens logikapp körs varje minut och genererar ett slumptal 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 kontrollerar du att du inaktiverar eller tar bort batchSender-logikappens arbetsflöde för att sluta skicka meddelanden och undvika att överbelasta inkorgen.