Berichten verzenden, ontvangen en batchgewijs verwerken in Azure Logic Apps
Van toepassing op: Azure Logic Apps (Verbruik + Standard)
Als u berichten op een specifieke manier als groepen wilt verzenden en verwerken, kunt u een batchoplossing maken. Met deze oplossing worden berichten verzameld in een batch en wordt gewacht tot aan uw opgegeven criteria wordt voldaan voordat de batchberichten worden vrijgegeven en verwerkt. Batchverwerking kan verminderen hoe vaak uw logische app berichten verwerkt.
Deze handleiding laat zien hoe u een batchoplossing bouwt door twee logische apps te maken binnen hetzelfde Azure-abonnement, dezelfde Azure-regio en in deze volgorde:
De logische app batchontvanger , die berichten in een batch accepteert en verzamelt totdat aan de opgegeven criteria wordt voldaan voor het vrijgeven en verwerken van deze berichten. Zorg ervoor dat u eerst deze batchontvanger maakt, zodat u later de batchbestemming kunt selecteren wanneer u de batchzender maakt.
Een of meer logische apps voor batch-afzenders , waarmee de berichten worden verzonden naar de eerder gemaakte batchontvanger.
De afzender van de batch kan een unieke sleutel opgeven die de doelbatch partitioneert of verdeelt in logische subsets op basis van die sleutel. Een klantnummer is bijvoorbeeld een unieke sleutel. Op die manier kan de ontvanger-app alle items met dezelfde sleutel verzamelen en ze samen verwerken.
Uw batchontvanger en batchzender moeten hetzelfde Azure-abonnement en dezelfde Azure-regio delen. Als dat niet zo is, kunt u de batchontvanger niet selecteren wanneer u de batchzender maakt, omdat ze niet zichtbaar zijn voor elkaar.
Vereisten
Een Azure-account en -abonnement. Als u nog geen abonnement hebt, meld u dan aan voor een gratis Azure-account.
Een e-mailaccount met een e-mailprovider die wordt ondersteund door Azure Logic Apps
Belangrijk
Als u de Gmail-connector wilt gebruiken, kunnen alleen bedrijfsaccounts van G Suite deze connector zonder beperking in logische apps gebruiken. Als u een Gmail-consumentenaccount hebt, kunt u deze connector alleen gebruiken met specifieke door Google goedgekeurde services, of u kunt een Google-client-app maken voor verificatie bij uw Gmail-connector. Zie Beleid voor gegevensbeveiliging en privacybeleid voor Google-connectors in Azure Logic Apps voor meer informatie.
Basiskennis over werkstromen voor logische apps
Als u Visual Studio Code wilt gebruiken in plaats van Azure Portal, moet u Visual Studio Code instellen voor het werken met Azure Logic Apps.
Beperkingen
U kunt de inhoud alleen in een batch controleren na de release door de vrijgegeven inhoud te vergelijken met de bron.
U kunt een batch alleen vroeg vrijgeven door de releasecriteria in de batchontvanger te wijzigen, die in deze handleiding wordt beschreven, terwijl de trigger nog steeds de batch heeft. De trigger gebruikt echter de bijgewerkte releasecriteria voor niet-verzonden berichten.
Batchontvanger maken
Voordat u berichten naar een batch kunt verzenden, moet die batch eerst bestaan als de bestemming waar u deze berichten verzendt. Eerst moet u dus de werkstroom voor de logische app batchontvanger maken, die begint met de Batch-trigger. Op die manier kunt u, wanneer u de werkstroom voor logische apps voor batchontvangers maakt, de werkstroom voor logische apps voor batchontvanger selecteren. De batchontvanger blijft berichten verzamelen totdat aan uw opgegeven criteria wordt voldaan voor het vrijgeven en verwerken van deze berichten. Hoewel batchontvangers niets hoeven te weten over batch-afzenders, moeten batchzenders de bestemming weten waar ze de berichten verzenden.
Maak in Azure Portal een logische app-resource met een lege werkstroom.
In dit voorbeeld wordt een logische app en werkstroom voor batchontvanger gemaakt met de naam BatchReceiver.
Selecteer een trigger toevoegen in de werkstroomontwerper en volg deze algemene stappen om de Batch Operations-trigger met de naam Batch-trigger toe te voegen.
Stel de volgende triggereigenschappen in:
Eigenschappen Beschrijving Wijze
(Alleen werkstromen voor verbruik)- Inline: Voor het definiëren van releasecriteria in de batchtrigger
- Integratieaccount: voor het definiëren van meerdere releasecriteriaconfiguraties via een integratieaccount. Met een integratieaccount kunt u deze configuraties allemaal op één plaats onderhouden in plaats van in afzonderlijke logische app-resources.Batchnaam De naam voor uw batch. In verbruikswerkstromen wordt deze eigenschap alleen weergegeven wanneer de modus is ingesteld op Inline. In dit voorbeeld wordt TestBatch gebruikt. Releasecriteria De criteria waaraan moet worden voldaan voordat elke batch wordt verwerkt. Standaard werkt de batchtrigger met behulp van de 'inlinemodus' waar u de criteria voor batchrelease in de batchtrigger definieert.
- Aantal berichten op basis van: Laat de batch los op basis van het aantal berichten dat door de batch is verzameld.
- Grootte gebaseerd: Laat de batch los op basis van de totale grootte in bytes voor alle berichten die door die batch zijn verzameld.
- Op basis van planning: Laat de batch los op basis van een terugkeerschema, dat een interval en frequentie aangeeft. U kunt desgewenst een tijdzone selecteren en een begindatum en -tijd opgeven.
Als u alle opgegeven criteria wilt gebruiken, selecteert u alle opties.Aantal berichten Het aantal berichten dat in de batch moet worden verzameld, bijvoorbeeld 10 berichten. De limiet voor batchberichten is 8.000 berichten. Batchgrootte De totale bytegrootte voor berichten die moeten worden verzameld in de batch, bijvoorbeeld 10 MB. De maximale batchgrootte is 80 MB. Terugkeerpatroon Het interval en de frequentie tussen batchreleases, bijvoorbeeld 10 minuten. Het minimale terugkeerpatroon is 60 seconden of 1 minuut. Breukminuten worden in feite afgerond op 1 minuut. U kunt eventueel een tijdzone selecteren en een begindatum en -tijd opgeven. Notitie
Als u de releasecriteria wijzigt terwijl de trigger nog steeds batchgewijs maar niet-verzonden berichten heeft, gebruikt de trigger de bijgewerkte releasecriteria voor het verwerken van de niet-verzonden berichten.
In dit voorbeeld ziet u alle criteria, maar probeer voor uw eigen test slechts één criterium:
Voeg nu een of meer acties toe die elke batch verwerken.
In dit voorbeeld voegt u een actie toe waarmee een e-mailbericht wordt verzonden wanneer de batchtrigger wordt geactiveerd. De trigger wordt uitgevoerd en verzendt een e-mailbericht wanneer de batch 10 berichten heeft, 10 MB bereikt of na 10 minuten is verstreken.
Selecteer onder de batchtrigger het plusteken >(+) Een actie toevoegen.
Volg deze algemene stappen om een actie toe te voegen waarmee een e-mailbericht wordt verzonden op basis van uw e-mailprovider.
Als u bijvoorbeeld een werk- of schoolaccount hebt, zoals @fabrikam.com of @fabrikam.onmicrosoft.com, selecteert u de Microsoft 365 Outlook-connector . Als u een persoonlijk account hebt, zoals @outlook.com of @hotmail.com, selecteert u de Outlook.com-connector . In dit voorbeeld wordt de Microsoft 365 Outlook-connector gebruikt.
Meld u aan bij uw e-mailaccount als dat wordt gevraagd.
Stel de volgende actie-eigenschappen in:
Voer het e-mailadres van de ontvanger in het vak Aan in. Voor testdoeleinden kunt u uw eigen e-mailadres gebruiken.
Selecteer in het vak Onderwerp om de opties voor de lijst met dynamische inhoud (bliksempictogram) en expressie-editor (functiepictogram) weer te geven. Selecteer het bliksempictogram om de lijst met dynamische inhoud te openen en selecteer het veld Partitienaam.
Later kunt u in de batchzender een unieke partitiesleutel opgeven waarmee de doelbatch wordt verdeeld in logische subsets waar u berichten kunt verzenden. Elke set heeft een uniek nummer dat wordt gegenereerd door de werkstroom van de logische app voor batchzenders. Met deze mogelijkheid kunt u één batch met meerdere subsets gebruiken en elke subset definiëren met de naam die u opgeeft.
Belangrijk
Een partitie heeft een limiet van 5000 berichten of 80 MB. Als aan een van beide voorwaarden wordt voldaan, kan Azure Logic Apps de batch vrijgeven, zelfs wanneer niet aan uw gedefinieerde releasevoorwaarde wordt voldaan.
Selecteer in het vak Hoofdtekst het bliksempictogram om de lijst met dynamische inhoud te openen en selecteer het veld Bericht-id .
De werkstroomontwerper voegt automatisch een Lus voor elke lus toe rond de actie Voor het verzenden van e-mail, omdat deze actie de uitvoer van de vorige actie behandelt als een verzameling, in plaats van een batch.
In het volgende voorbeeld ziet u het informatievenster nadat u het vak Voor elke titel hebt geselecteerd in de ontwerpfunctie waarin Batched Items de naam van de verzameling is:
Sla uw werkstroom op. U hebt nu een batchontvanger gemaakt.
Belangrijk
Als u Visual Studio Code gebruikt voordat u verdergaat met de volgende sectie, moet u ervoor zorgen dat u de logische app-resource voor batchontvanger eerst implementeert in Azure. Anders kunt u de werkstroom voor logische apps voor batchontvanger niet selecteren wanneer u de werkstroom voor logische apps voor batchzenders maakt.
Batch-afzender maken
Maak nu een of meer logische app-werkstromen voor batchzenders waarmee berichten worden verzonden naar de werkstroom van de logische app voor batchontvangers. In elke batchzender geeft u de batchontvanger en batchnaam, berichtinhoud en eventuele andere instellingen op. U kunt desgewenst een unieke partitiesleutel opgeven om de batch te verdelen in logische subsets voor het verzamelen van berichten met die sleutel.
Zorg ervoor dat u de batchontvanger eerder hebt gemaakt en geïmplementeerd. Wanneer u de batchzender maakt, kunt u de bestaande batchontvanger selecteren als doelbatch. Hoewel batchontvangers niets hoeven te weten over batch-afzenders, moeten batch-afzenders weten waar berichten moeten worden verzonden.
Zorg ervoor dat uw batchontvanger en batchzender dezelfde Azure-regio en hetzelfde Azure-abonnement delen. Als dat niet zo is, kunt u de batchontvanger niet selecteren wanneer u de batchzender maakt, omdat ze niet zichtbaar zijn voor elkaar.
Maak een andere logische app-resource en werkstroom met de naam BatchSender.
Notitie
Als u een resource voor een standaard logische app hebt, moet u een stateful werkstroom maken, niet een staatloze werkstroom omdat de trigger Terugkeerpatroon niet beschikbaar is voor staatloze werkstromen.
Volg deze algemene stappen om de schematrigger terugkeerpatroon toe te voegen.
In dit voorbeeld wordt het interval en de frequentie ingesteld om de werkstroom van de afzender elke minuut uit te voeren.
Voeg een nieuwe actie toe voor het verzenden van berichten naar een batch.
Selecteer onder de trigger Terugkeerpatroon het plusteken> (+) Nieuwe actie toevoegen.
Volg de bijbehorende stappen op basis van of u een werkstroom verbruik of Een standaardwerkstroom hebt:
Werkstroom verbruik
Nadat u de werkstroomactie Verzenden naar batchtrigger hebt toegevoegd, wordt er een lijst weergegeven met alleen de logische app-resources met batchtriggers die in hetzelfde Azure-abonnement en dezelfde Azure-regio bestaan als de logische app-resource van de batch-afzender.
Selecteer in de lijst met logische apps de eerder gemaakte logische app die u als batchontvanger wilt gebruiken. Wanneer de beschikbare triggers worden weergegeven, selecteert u de trigger met de naam Batch_messages.
Belangrijk
Als u Visual Studio Code gebruikt en er geen batchontvangers worden weergegeven die u wilt selecteren, controleert u of u de batchontvanger eerder hebt gemaakt en geïmplementeerd in Azure. Als u dat nog niet hebt gedaan, leert u hoe u de logische app-resource voor batchontvanger implementeert in Azure.
Wanneer u klaar bent, selecteert u Actie Toevoegen.
Standaardwerkstroom
Nadat u de actie Verzenden naar batch hebt toegevoegd, ziet u in het actievenster de volgende eigenschappen in de volgende stap om de batchnaam, berichtinhoud, werkstroomnaam en triggernaam op te geven. U kunt alleen informatie opgeven voor een werkstroom voor logische apps voor batchontvangers met een batchtrigger die zich in hetzelfde Azure-abonnement en dezelfde Azure-regio bevindt als uw logische app voor batchzenders.
Stel de volgende eigenschappen van de actie batchontvanger in:
Eigenschappen Beschrijving Batchnaam De batchnaam die is gedefinieerd door de logische ontvanger-app, in dit voorbeeld TestBatch
Belangrijk: De batchnaam wordt gevalideerd tijdens runtime en moet overeenkomen met de naam die is opgegeven door de logische app voor batchontvanger. Als u de naam van de batch wijzigt, mislukt de batch-afzender.Berichtinhoud De inhoud van het bericht dat u wilt verzenden. Zie het volgende voorbeeld voor de waarde die moet worden gebruikt. Werkstroomnaam
(Alleen standaardwerkstromen)De naam voor de werkstroom met de batchtrigger. Triggernaam De naam voor de batchtrigger in de werkstroom van de logische app voor batchontvanger. In verbruikswerkstromen wordt deze waarde automatisch ingevuld vanuit de geselecteerde logische app voor batchontvanger. Werkstroom-id De id voor de werkstroom met de batchtriggernaam voor de logische app-werkstroom voor batchontvanger. In verbruikswerkstromen wordt deze waarde automatisch ingevuld vanuit de geselecteerde logische app voor batchontvanger. Voeg in dit voorbeeld voor de eigenschapswaarde Berichtinhoud de volgende expressie toe, waarmee de huidige datum en tijd worden ingevoegd in de berichtinhoud die u naar de batch verzendt:
Selecteer in het vak Berichtinhoud om de opties voor dynamische inhoud (bliksempictogram) en expressie-editor (functiepictogram) weer te geven.
Selecteer het functiepictogram om de expressie-editor te openen.
Voer in de editor de functie utcnow()in en selecteer Toevoegen.
Werkstroom verbruik
Standaardwerkstroom
Stel nu een partitie in voor de batch.
Selecteer in het actievenster batchzender in de lijst Geavanceerde parameters de volgende eigenschappen:
Eigenschappen Beschrijving Partitienaam Een optionele unieke partitiesleutel die moet worden gebruikt voor het delen van de doelbatch in logische subsets en het verzamelen van berichten op basis van die sleutel.
Zie voor dit voorbeeld de volgende stappen om een expressie toe te voegen waarmee een willekeurig getal tussen één en vijf wordt gegenereerd.Bericht-id Een optionele bericht-id die een gegenereerde GUID (Globally Unique Identifier) is als deze leeg is. Laat voor dit voorbeeld deze waarde leeg. Selecteer in het vak Partitienaam en selecteer de optie voor de expressie-editor (functiepictogram).
Voer in de expressie-editor de functierand (1,6) in en selecteer Toevoegen.
In dit voorbeeld wordt een getal tussen één en vijf gegenereerd. U verdeelt deze batch dus in vijf genummerde partities, die met deze expressie dynamisch worden ingesteld.
Wanneer u klaar bent, ziet uw werkstroom voor batchzenders er nu uit zoals in het volgende voorbeeld, op basis van het werkstroomtype van uw logische app:
Werkstroom verbruik
Standaardwerkstroom
Sla uw werkstroom op.
Uw werkstromen testen
Als u uw batchoplossing wilt testen, laat u de werkstromen van uw logische app enkele minuten draaien. Binnenkort krijgt u e-mailberichten in groepen van vijf, allemaal met dezelfde partitiesleutel.
De logische app voor batchzenders wordt elke minuut uitgevoerd en genereert een willekeurig getal tussen één en vijf. De batchzender gebruikt dit willekeurige nummer als de partitiesleutel voor de doelbatch waar u de berichten verzendt. Telkens wanneer de batch vijf items met dezelfde partitiesleutel heeft, wordt de logische app voor batchontvanger geactiveerd en e-mail verzonden voor elk bericht.
Belangrijk
Wanneer u klaar bent met testen, moet u ervoor zorgen dat u de werkstroom van de logische app van BatchSender uitschakelt of verwijdert om het verzenden van berichten te stoppen en te voorkomen dat uw Postvak IN overbelast raakt.