Freigeben über


Versand, Empfang und Batchverarbeitung von Nachrichten in Azure Logic Apps

Gilt für: Azure Logic Apps (Verbrauch + Standard)

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. Dazu müssen Sie zunächst den Logik-App-Workflow für den Batchempfang erstellen, der über den Trigger Batch gestartet wird. Dadurch können Sie den Logik-App-Workflow für den Batchempfang auswählen, wenn Sie den Logik-App-Workflow 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 eine Logik-App-Ressource und einen leeren Workflow.

    In diesem Beispiel wird eine Logik-App und ein Workflow für den Batchempfang namens BatchReceiver erstellt.

  2. Wählen Sie im Workflow-Designer Trigger hinzufügen aus, und führen Sie die folgenden allgemeinen Schritte aus, um den TriggerBatchvorgänge namens Batchtrigger hinzuzufügen.

  3. Legen Sie die folgenden Triggereigenschaften fest:

    Eigenschaft Beschreibung
    Mode
    (nur Verbrauchsworkflows)
    - 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-App-Ressourcen verwalten.
    Batchname Der Name Ihres Batches. In Verbrauchsworkflows wird diese Eigenschaft nur angezeigt, wenn der Modus auf Inline festgelegt ist. In diesem Beispiel wird TestBatch verwendet.
    Freigabekriterien Die Kriterien, die vor der Verarbeitung der einzelnen Batches erfüllt werden müssen. Standardmäßig wird der Batchtrigger im „Inlinemodus“ ausgeführt, in dem Sie die Batchfreigabekriterien innerhalb des Batchtriggers definieren.

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

    - Zeitplanbasiert: Geben Sie den Batch auf Grundlage eines Wiederholungszeitplans frei, der ein Intervall und eine Häufigkeit angibt. Optional können Sie eine Zeitzone auswählen und ein Startdatum sowie eine Startzeit angeben.

    Um alle angegebenen Kriterien zu verwenden, wählen Sie alle Optionen aus.
    Nachrichtenanzahl Die Anzahl von Nachrichten, die im Batch gesammelt werden sollen, z. B. 10 Nachrichten Der Grenzwert für Batchnachrichten beträgt 8.000 Nachrichten.
    Batch Size Die Gesamtgröße in Bytes für Nachrichten, die im Batch erfasst werden sollen, z. B. 10 MB. Das Größenlimit für einen Batch beträgt 80 MB.
    Serie 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. Optional können Sie eine Zeitzone auswählen und ein Startdatum sowie eine Startzeit angeben.

    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:

    Screenshot: Alle Kriterien für 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 das Pluszeichen (+) >Aktion hinzufügen aus.

    2. Führen Sie die folgenden allgemeinen Schritte aus, um eine Aktion hinzuzufügen, die eine E-Mail basierend auf Ihrem E-Mail-Anbieter sendet.

      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.

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

  6. Legen Sie die folgenden Aktionseigenschaften 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 die Optionen für die Liste dynamischer Inhalte (Blitzsymbol) und den Ausdrucks-Editor (Funktionssymbol) aus. Wählen Sie das Blitzsymbol aus, um die Liste dynamischer Inhalte zu öffnen, und wählen Sie das Feld namens Partitionsname aus.

      Screenshot: Liste dynamischer Inhalte und ausgewähltes Feld für die Eigenschaft „Partitionsname“.

      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. Jeder Satz besitzt eine eindeutige Nummer, die vom Logik-App-Workflow 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 Azure Logic Apps den Batch ggf. frei, auch wenn Ihre definierte Freigabebedingung nicht erfüllt ist.

    • Wählen Sie im Feld Textkörper das Blitzsymbol aus, um die Liste dynamischer Inhalte zu öffnen, und wählen Sie das Feld Nachrichtennachricht-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.

      Das folgende Beispiel zeigt den Informationsbereich, nachdem Sie im Designer das Titelfeld Für alle ausgewählt haben, wobei Elemente im Batch der Sammlungsname ist:

      Screenshot: Sammlung „Elemente im Batch“ mit vorherigen Vorgangsausgaben.

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

    Wichtig

    Stellen Sie bei Verwendung von Visual Studio Code sicher, bevor Sie mit dem nächsten Abschnitt fortfahren, dass Sie zuerst Ihre Logik-App-Ressource für den Batchempfang in Azure bereitstellen. Andernfalls können Sie den Logik-App-Workflow für den Batchempfang nicht auswählen, wenn Sie den Logik-App-Workflow für den Batchversand erstellen.

Erstellen der Logik-App für den Batchversand

Erstellen Sie nun einen oder mehrere Logik-App-Workflows für den Batchversand, die Nachrichten an den Logik-App-Workflow 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-Ressource und einen -Workflow namens BatchSender.

    Hinweis

    Wenn Sie über eine Ressource der Standard-Logik-App verfügen, stellen Sie sicher, dass Sie einen statusbehafteten Workflow erstellen und keinen statusfreien Workflow, da der Wiederholungstrigger für statusfreie Workflows nicht verfügbar ist.

  2. Führen Sie diese allgemeinen Schritte aus, um den Zeitplantrigger namens Serie hinzuzufügen.

    In diesem Beispiel werden das Intervall und die Häufigkeit so festgelegt, dass der Versandworkflow jede Minute ausgeführt wird.

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

    1. Wählen Sie unter Wiederholungstrigger das Pluszeichen (+)>Neue Aktion hinzufügen aus.

    2. Führen Sie die folgenden allgemeinen Schritte aus, um die Aktion Batchvorgänge namens An Batchtriggerworkflow senden (Verbrauchsworkflow) oder An Batch senden (Standardworkflow) hinzuzufügen.

    3. Je nachdem, ob Sie über einen Verbrauchs- oder Standardworkflow verfügen, führen Sie die entsprechenden Schritte aus:

      Verbrauchsworkflow

      Nachdem Sie die Aktion An Batchtriggerworkflow senden hinzugefügt haben, wird eine Liste angezeigt, die nur die Logik-App-Ressourcen mit Batchtriggern aufführt, die in demselben Azure-Abonnement und in derselben Azure-Region vorhanden sind wie Ihre Logik-App-Ressource für Batchversand.

      1. Wählen Sie die zuvor erstellte Logik-App aus der Liste der Logik-Apps aus, um sie als Batchempfang zu verwenden. Wenn die verfügbaren Trigger angezeigt werden, wählen Sie den Trigger namens Batch_messages aus.

        Screenshot: Verbrauchsworkflow mit Wiederholungstrigger- und Batchversandaktion, der Logik-App-Ressource und Trigger für den Batchempfang auswählt.

        Wichtig

        Wenn Sie Visual Studio Code verwenden und kein Batchempfang zur Auswahl angezeigt wird, vergewissern Sie sich, dass Sie Ihren Batchempfang zuvor erstellt und in Azure bereitgestellt haben. Ist dies nicht der Fall, finden Sie unter Bereitstellen Ihrer Logik-App-Ressource für den Batchempfang in Azure weitere Informationen.

      2. Wenn Sie fertig sind, wählen Sie Aktion hinzufügen aus.

      Standardworkflow

      Nachdem Sie die Aktion An Batch senden hinzugefügt haben, zeigt der Aktionsbereich die folgenden Eigenschaften im nächsten Schritt an, damit Sie den Batchnamen, den Nachrichteninhalt, den Workflownamen und den Triggernamen angeben. Sie können Informationen nur für einen Logik-App-Workflow für den Batchempfang mit einem Batchtrigger angeben, der in demselben Azure-Abonnement und in derselben Azure-Region vorhanden ist wie Ihre Logik-App für den Batchversand.

      Screenshot: Standardworkflow mit Wiederholungstrigger und Aktion namens „An Batch senden“.

  4. Legen Sie die folgenden Aktionseigenschaften für den Batchempfang fest:

    Eigenschaft BESCHREIBUNG
    Batchname Der in der Logik-App für den Empfang definierte Batchname, in diesem Beispiel TestBatch

    Wichtig: Der Batchname wird zur Runtime ü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. Das folgende Beispiel zeigt den zu verwendenden Wert.
    Workflowname
    (nur Workflows vom Typ „Standard“)
    Der Name für den Workflow, der über den Batchtrigger verfügt.
    Triggername Der Name für den Batchtrigger im Logik-App-Workflow für den Batchempfang. In Verbrauchsworkflows wird dieser Wert automatisch aus der ausgewählten Logik-App für den Batchempfang ausgefüllt.
    Workflow-ID Die ID für den Workflow mit dem Logik-App-Workflow für den Batchempfang mit dem Batchtriggernamen. In Verbrauchsworkflows wird dieser Wert automatisch aus der ausgewählten Logik-App für den Batchempfang ausgefüllt.

    Fügen Sie in diesem Beispiel für den Wert der Eigenschaft Nachrichteninhalt den folgenden Ausdruck hinzu, der das aktuelle Datum und die aktuelle Uhrzeit in den Nachrichteninhalt einfügt, den Sie an den Batch senden:

    1. Wählen Sie im Feld Nachrichteninhalt die Optionen für dynamischer Inhalte (Blitzsymbol) und den Ausdrucks-Editor (Funktionssymbol) aus.

    2. Wählen Sie das Funktionssymbol aus, um den Ausdrucks-Editor zu öffnen.

    3. Geben Sie im Editor die Funktion namens utcnow() ein, und wählen Sie Hinzufügen aus.

      Verbrauchsworkflow

      Screenshot: Verbauchsworkflow, Aktionsbereich „Batchversand“, Feld „Nachrichteninhalt“ mit Cursor, Ausdrucks-Editor mit Funktion „utcNow“ und weitere Details.

      Standardworkflow

      Screenshot: Verbauchsworkflow, Aktionsbereich „Batchversand“, Feld „Nachrichteninhalt“ mit Cursor, Ausdrucks-Editor mit Funktion „utcNow“ und weitere Details.

  5. Richten Sie nun eine Partition für den Batch ein.

    1. Wählen Sie im Aktionsbereich „Batchversand“ aus der Liste Erweiterte Parameter die folgenden 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.

      Führen Sie die folgenden Schritte aus, um in diesem Beispiel im Feld Partitionsname einen Ausdruck hinzuzufügen, der eine Zufallszahl zwischen eins und fünf generiert.
      Nachrichten-ID Ein optionaler Nachrichtenbezeichner, bei dem es sich um einen Globally Unique Identifier (GUID) handelt, wenn er leer ist. Lassen Sie diesen Wert in diesem Beispiel leer.
    2. Wählen Sie im Feld Partitionsname die Option für den Ausdrucks-Editor (Funktionssymbol) aus.

    3. Geben Sie im Ausdrucks-Editor die Funktion rand(1,6) ein, und wählen Sie Hinzufügen aus.

      In diesem Beispiel wird eine Zahl zwischen eins und fünf generiert. Der Batch wird also in fünf nummerierte Partitionen unterteilt, die dynamisch durch diesen Ausdruck festgelegt werden.

      Screenshot: Funktion namens „Rand“ zum Teilen des Batches in Partitionen.

      Wenn Sie fertig sind, sieht ihr Workflow für den Batchversand nun ähnlich wie im folgenden Beispiel aus, basierend auf ihrem Logik-App-Workflowtyp:

      Verbrauchsworkflow

      Screenshot: Abgeschlossener Logik-App-Verbrauchsworkflow für den Batchversand.

      Standardworkflow

      Screenshot: Abgeschlossener Workflow der Standard-Logik-App für den Batchversand.

  6. Speichern Sie den Workflow.

Testen Ihres Workflows

Um Ihre Batchverarbeitungslösung zu testen, lassen Sie Ihre Logik-App-Workflows 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

Stellen Sie sicher, dass Sie am Ende Ihres Tests den Logik-App-Workflow BatchSender deaktivieren oder löschen. Das verhindert, dass die Logik-App weiterhin Nachrichten sendet und dadurch Ihren Posteingang überlädt.