Versand, Empfang und Batchverarbeitung von Nachrichten in Azure Logic Apps

Gilt für: Azure Logic Apps (Verbrauch)

Um Nachrichten auf eine bestimmte Weise als Gruppen gemeinsam zu senden und zu verarbeiten, können Sie eine Batchverarbeitungslösung erstellen. Diese Lösung sammelt Nachrichten in einem Batch und wartet, bis die angegebenen Kriterien erfüllt sind, um dann den Nachrichtenbatch freizugeben und zu verarbeiten. Mittels Batchverarbeitung können Sie erreichen, dass Ihre Logik-App Nachrichten weniger häufig verarbeitet.

In dieser Schrittanleitung wird gezeigt, wie Sie eine Batchverarbeitungslösung erstellen, indem Sie zwei Logik-Apps im selben Azure-Abonnement und der selben Azure-Region sowie in dieser Reihenfolge erstellen:

  1. Die Logik-App für den Batchempfang, die Nachrichten in einem Batch annimmt und sammelt, bis die angegebenen Kriterien zur Freigabe und Verarbeitung der Nachrichten erfüllt sind Stellen Sie sicher, dass Sie zuerst die Logik-App für diesen Batchempfänger erstellen, sodass Sie später beim Erstellen der Logik-App für den Batchversand das Batchziel auswählen können.

  2. Mindestens eine Logik-App für den Batchversand, die die Nachrichten an die zuvor erstellte Logik-App für den Batchempfang sendet

    Der Batchsender kann einen eindeutigen Schlüssel angeben, der den Zielbatch auf der Grundlage dieses Schlüssels in logische Untergruppen partitioniert (unterteilt). Eine Kundennummer ist ein Beispiel für einen eindeutigen Schlüssel. Auf diese Weise kann die App für den Empfang alle Elemente mit demselben Schlüssel sammeln und zusammen verarbeiten.

Batchempfänger und Batchsender müssen sich im selben Azure-Abonnement und in derselben Azure-Region befinden. Wenn dies nicht der Fall ist, können Sie beim Erstellen der Logik-App für den Batchversand nicht die Logik-App für den Batchempfang auswählen, da sie gegenseitig nicht sichtbar sind.

Voraussetzungen

Einschränkungen

  • Sie können die Inhalte in einem Batch erst nach der Veröffentlichung überprüfen, indem Sie die freigegebenen Inhalte mit der Quelle vergleichen.

  • Sie können einen Batch nur frühzeitig freigeben, indem Sie die Freigabekriterien im Batchempfänger ändern, die in dieser Anleitung beschrieben wird, während der Trigger noch über den Batch verfügt. Der Trigger verwendet jedoch die aktualisierten Freigabekriterien für alle nicht gesendeten Nachrichten.

Erstellen der Logik-App für den Batchempfang

Um Nachrichten an einen Batch senden zu können, muss dieser Batch zunächst als Ziel vorhanden sein, an das die Nachrichten gesendet werden. Daher müssen Sie zunächst die Logik-App für den Batchempfang erstellen, die über den Trigger Batch gestartet wird. Dadurch können Sie die Logik-App für den Batchempfang auswählen, wenn Sie die Logik-App für den Batchversand erstellen. Die Logik-App für den Batchempfang sammelt Nachrichten, bis die angegebenen Kriterien zur Freigabe und Verarbeitung der Nachrichten erfüllt sind. Beim Batchempfang sind keine Angaben zum Batchversand erforderlich, beim Batchversand wird dagegen das Ziel benötigt, an das die Nachrichten gesendet werden.

  1. Erstellen Sie im Azure-Portal oder in Visual Studio eine Logik-App mit diesem Namen: BatchReceiver

  2. Fügen Sie im Workflow-Designer den Trigger Batch hinzu, um Ihren Logik-App-Workflow zu starten. Geben Sie in das Suchfeld batch ein, und wählen Sie diesen Trigger aus: Batchnachrichten

    Hinzufügen des Triggers „Batchnachrichten“

  3. Legen Sie diese Eigenschaften für den Batchempfang fest:

    Eigenschaft BESCHREIBUNG
    Batchmodus - Inline: Zum Definieren von Freigabekriterien im Batchtrigger
    - Integrationskonto: Zum Definieren mehrerer Konfigurationen für Freigabekriterien über ein Integrationskonto. Mit einem Integrationskonto können Sie diese Konfigurationen an zentraler Stelle statt in separaten Logik-Apps verwalten.
    Batchname Der Name für Ihren Batch (in diesem Beispiel „TestBatch“). Er gilt nur für den Batchmodus Inline.
    Freigabekriterien Diese Eigenschaft gilt nur für den Batchmodus Inline und gibt die Kriterien an, die vor der Verarbeitung der einzelnen Batches erfüllt sein müssen:

    - Basierend auf der Nachrichtenanzahl: Den Batch auf Grundlage der Anzahl der vom Batch gesammelten Nachrichten freigeben.
    - Basierend auf Größe: Den Batch auf Grundlage der Gesamtgröße aller von diesem Batch gesammelten Nachrichten in Bytes freigeben.
    - Zeitplan: Den Batch auf Grundlage eines Wiederholungszeitplans freigeben, der ein Intervall und eine Häufigkeit angibt. In den erweiterten Optionen können Sie außerdem eine Zeitzone auswählen und ein Startdatum sowie eine Startzeit bereitstellen.
    - Alle auswählen: Alle angegebenen Kriterien verwenden.

    Nachrichtenanzahl Die Anzahl von Nachrichten, die im Batch gesammelt werden sollen, z. B. 10 Nachrichten Der Grenzwert für einen Batch ist 8.000 Nachrichten.
    Batch Size Die Gesamtgröße in Bytes, die im Batch gesammelt werden soll, z. B. 10 MB. Das Größenlimit für einen Batch beträgt 80 MB.
    Zeitplan Das Intervall und die Häufigkeit zwischen Batchfreigaben, z. B. 10 Minuten. Der Mindestwert für die Wiederholungen beträgt 60 Sekunden bzw. 1 Minute. Minutenbruchteile werden auf 1 Minute aufgerundet. Öffnen Sie zum Angeben einer Zeitzone oder eines Startdatums und einer Startzeit die Liste Neuen Parameter hinzufügen, und wählen Sie die entsprechenden Eigenschaften aus.

    Hinweis

    Wenn Sie die Freigabekriterien ändern, während der Trigger noch über als Stapel zusammengefasste, aber nicht gesendete Nachrichten verfügt, verwendet er die aktualisierten Freigabekriterien, um die nicht gesendeten Nachrichten zu verarbeiten.

    Dieses Beispiel zeigt alle Kriterien, doch probieren Sie für Ihre eigenen Tests nur ein Kriterium aus:

    Angeben von Details für den Batchtrigger

  4. Fügen Sie nun eine oder mehrere Aktionen für die Verarbeitung der einzelnen Batches hinzu.

    Fügen Sie für dieses Beispiel eine Aktion hinzu, die eine E-Mail sendet, wenn der Batchtrigger ausgelöst wird. Der Trigger wird ausgeführt und sendet eine E-Mail, wenn der Batch 10 Nachrichten enthält oder 10 MB umfasst oder wenn 10 Minuten vergangen sind.

    1. Wählen Sie unter dem Batchtrigger Neuer Schritt aus.

    2. Geben Sie im Suchfeld den Begriff send email als Filter ein. Wählen Sie basierend auf Ihrem E-Mail-Anbieter einen E-Mail-Connector aus.

      Wenn Sie beispielsweise über ein Geschäfts-, Schul- oder Unikonto wie @fabrikam.com oder @fabrikam.onmicrosoft.com verfügen, wählen Sie den Microsoft 365 Outlook-Connector aus. Wenn Sie ein persönliches Konto wie @outlook.com oder @hotmail.com besitzen, wählen Sie den Outlook.com-Connector aus. In diesem Beispiel wird der Microsoft 365 Outlook-Connector verwendet.

    3. Wählen Sie die Aktion „E-Mail senden“ für Ihren Anbieter aus, z. B.:

      Auswählen der Aktion „E-Mail senden“ für Ihren E-Mail-Anbieter

  5. Melden Sie sich nach Aufforderung bei Ihrem E-Mail-Konto an.

  6. Legen Sie die Eigenschaften für die hinzugefügte Aktion fest.

    • Geben Sie im Feld An die E-Mail-Adresse des Empfängers ein. Zu Testzwecken können Sie hier Ihre eigene E-Mail-Adresse angeben.

    • Wählen Sie im Feld Betreff in der angezeigten Liste mit dynamischem Inhalt das Feld Partitionsname aus.

      Auswählen von „Partitionsname“ in der Liste „Dynamischer Inhalt“

      Später im Batchversand können Sie einen eindeutigen Partitionsschlüssel angeben, um den Zielbatch in logische Untergruppen zu unterteilen, an die Nachrichten gesendet werden können. Jede Gruppe besitzt eine eindeutige Nummer, die von der Logik-App für den Batchversand generiert wird. Dadurch können Sie einen einzelnen Batch mit mehreren Untergruppen verwenden und die einzelnen Untergruppen jeweils mit einem Namen Ihrer Wahl definieren.

      Wichtig

      Eine Partition hat einen Grenzwert von 5.000 Nachrichten oder 80 MB. Wenn eine der Bedingungen erfüllt ist, gibt Logic Apps den Batch ggf. frei, auch wenn Ihre definierte Freigabebedingung nicht erfüllt ist.

    • Wählen Sie im Feld Text in der angezeigten Liste mit dynamischem Inhalt das Feld Nachrichten-ID aus.

      Der Workflow-Designer fügt automatisch eine For each-Schleife um die Aktion „E-Mail senden“ hinzu, da diese Aktion die Ausgabe der vorherigen Aktion nicht als Batch, sondern als Sammlung behandelt.

      Auswählen von „Nachrichten-ID“ unter „Text“

  7. Speichern Sie Ihre Logik-App. Sie haben jetzt eine Logik-App für den Batchempfang erstellt.

    Speichern Ihrer Logik-App

    Wichtig

    Stellen Sie bei Verwendung von Visual Studio sicher, bevor Sie mit dem nächsten Abschnitt fortfahren, dass Sie zuerst Ihre Batchempfänger-Logik-App in Azure bereitstellen. Andernfalls können Sie beim Erstellen der Logik-App für den Batchversand nicht die Logik-App für den Batchempfang auswählen.

Erstellen der Logik-App für den Batchversand

Erstellen Sie nun eine oder mehrere Logik-Apps für den Batchversand, die Nachrichten an die Logik-App für den Batchempfang senden. In jeder Logik-App für den Batchversand geben Sie die Logik-App für den Batchempfang sowie den Batchnamen, den Nachrichteninhalt und gegebenenfalls weitere Einstellungen an. Optional können Sie einen eindeutigen Partitionsschlüssel angeben, um den Batch zum Sammeln von Nachrichten mit diesem Schlüssel in logische Untergruppen zu unterteilen.

  • Stellen Sie sicher, dass Sie zuvor Ihren Batchempfänger erstellt und bereitgestellt haben, sodass Sie beim Erstellen Ihres Batchsenders den vorhandenen Batchempfänger als Zielbatch auswählen können. Beim Batchempfang sind keine Angaben zum Batchversand erforderlich, beim Batchversand wird dagegen das Ziel benötigt, an das die Nachrichten gesendet werden.

  • Stellen Sie sicher, dass sich die Batchempfänger-Logik-App und die Batchsender-Logik-App in der selben Azure-Region und dem selben Azure-Abonnement befinden. Wenn dies nicht der Fall ist, können Sie beim Erstellen der Logik-App für den Batchversand nicht die Logik-App für den Batchempfang auswählen, da sie gegenseitig nicht sichtbar sind.

  1. Erstellen Sie eine weitere Logik-App mit diesem Namen: BatchSender

    1. Geben Sie im Suchfeld den Begriff recurrence als Filter ein. Wählen Sie in der Triggerliste den folgenden Trigger aus: Serie

      Hinzufügen des Serientriggers

    2. Legen Sie das Intervall und die Häufigkeit der Ausführung der Logik-App für den Versand auf einmal pro Minute fest.

      Festlegen von Häufigkeit und Intervall für den Wiederholungstrigger

  2. Fügen Sie eine neue Aktion zum Senden von Nachrichten an einen Batch hinzu.

    1. Wählen Sie unter dem Wiederholungstrigger die Option Neuer Schritt aus.

    2. Geben Sie batch als Filter in das Suchfeld ein, und wählen Sie die folgende Aktion aus: Logik-App-Workflow mit Batchtrigger auswählen

      Auswählen von „Logik-App-Workflow mit Batchtrigger auswählen“

      Es wird eine Liste mit nur den Logik-Apps angezeigt, die über Batchtrigger verfügen und sich in derselben Azure-Region und demselben Azure-Abonnement wie Ihre Batchsender-Logik-App befinden.

    3. Wählen Sie die zuvor erstellte Batchempfänger-Logik-App aus der Liste der Logik-Apps aus.

      Auswählen Ihrer Batchempfänger-Logik-App

      Wichtig

      Wenn Sie Visual Studio verwenden und keine Batchempfänger-Logik-Apps zur Auswahl angezeigt werden, vergewissern Sie sich, dass Sie Ihren Batchempfänger zuvor erstellt und in Azure bereitgestellt haben. Ist dies nicht der Fall, lesen Sie die Informationen zum Bereitstellen Ihrer Batchempfänger-Logik-App in Azure.

    4. Wählen Sie in der Liste mit den Aktionen diese Aktion aus: Batchnachrichten – <Name_Ihrer_Logik-App>

      Auswählen der Aktion „Batch_messages – <Ihre Logik-App>“

  3. Legen Sie die Eigenschaften für den Batchversand fest.

    Eigenschaft BESCHREIBUNG
    Batchname Der von der Empfänger-Logik-App definierte Batchname, der in diesem Beispiel TestBatch lautet.

    Wichtig: Der Batchname wird zur Laufzeit überprüft und muss mit dem in der Logik-App für den Empfang angegebenen Namen übereinstimmen. Wenn Sie den Batchnamen ändern, funktioniert die Logik-App für den Batchversand nicht.

    Nachrichteninhalt Der Inhalt für die Nachricht, die Sie senden möchten

    Hinweis

    Die Eigenschaftswerte von Triggername und Workflow werden automatisch von Ihrer ausgewählten Logik-App aufgefüllt.

    Fügen Sie in diesem Beispiel den folgenden Ausdruck hinzu, um das aktuelle Datum und die aktuelle Uhrzeit in den Nachrichteninhalt einzufügen, den Sie an den Batch senden:

    1. Klicken Sie in das Feld Nachrichteninhalt.

    2. Wählen Sie bei Anzeige der Liste mit dynamischen Inhalten Ausdruck aus.

    3. Geben Sie den Ausdruck utcnow() ein, und wählen Sie OK aus.

      Wählen Sie in „Nachrichteninhalt“ den Wert „Ausdruck“ aus, geben Sie „utcnow()“ ein, und wählen Sie „OK“ aus.

  4. Richten Sie nun eine Partition für den Batch ein. Öffnen Sie in der BatchReceiver-Aktion die Liste Neuen Parameter hinzufügen, und wählen Sie diese Eigenschaften aus:

    Eigenschaft BESCHREIBUNG
    Partitionsname Ein optionaler eindeutiger Partitionsschlüssel, der es ermöglicht, den Zielbatch in logische Untergruppen aufzuteilen und Nachrichten auf der Grundlage dieses Schlüssels zu sammeln
    Nachrichten-ID Eine optionale Nachrichten-ID, bei der es sich um einen global eindeutigen Bezeichner (Globally Unique Identifier, GUID) handelt, wenn nichts angegeben wird

    Fügen Sie in diesem Beispiel im Feld Partitionsname einen Ausdruck hinzu, der eine Zufallszahl zwischen eins und fünf generiert. Lassen Sie das Feld Nachrichten-ID leer.

    1. Klicken Sie in das Feld Partitionsname, damit die Liste mit dynamischem Inhalt angezeigt wird.

    2. Wählen Sie in der Liste mit den dynamischen Inhalten die Option Ausdruck aus.

    3. Geben Sie den Ausdruck rand(1,6) ein, und wählen Sie OK aus.

      Einrichten einer Partition für den Zielbatch

      Diese Funktion vom Typ rand generiert eine Zahl zwischen eins und fünf. Der Batch wird also in fünf nummerierte Partitionen unterteilt, die dynamisch durch diesen Ausdruck festgelegt werden.

  5. Speichern Sie Ihre Logik-App. Ihre Logik-App für den Versand sieht nun in etwa wie folgt aus:

    Speichern Ihrer Logik-App für den Versand

Testen Ihrer Logik-Apps

Lassen Sie Ihre Logik-Apps zum Testen Ihrer Batchverarbeitungslösung einige Minuten laufen. In Kürze erhalten Sie E-Mails in Fünfergruppen, die jeweils über den gleichen Partitionsschlüssel verfügen.

Die Logik-App für den Batchversand wird einmal pro Minute ausgeführt und generiert eine Zufallszahl zwischen eins und fünf. Vom Batchversand wird diese Zufallszahl als Partitionsschlüssel für den Zielbatch verwendet, an den die Nachrichten gesendet werden. Sobald der Batch fünf Elemente mit dem gleichen Partitionsschlüssel enthält, wird die Logik-App für den Batchempfang ausgelöst und sendet für jede Nachricht eine E-Mail.

Wichtig

Vergessen Sie am Ende Ihres Tests nicht, die BatchSender-Logik-App zu deaktivieren, um zu verhindern, dass die Logik-App weiterhin Nachrichten sendet und dadurch Ihren Posteingang überlädt.

Nächste Schritte