Tutorial: Reagieren auf über Azure Event Grid empfangene Azure Service Bus-Ereignisse mit Azure Logic Apps

In diesem Tutorial erfahren Sie, wie Sie mit Azure Logic Apps auf Azure Service Bus-Ereignisse reagieren, die über Azure Event Grid empfangen wurden.

Voraussetzungen

Wenn Sie kein Azure-Abonnement besitzen, erstellen Sie ein kostenloses Konto, bevor Sie beginnen.

Erstellen eines Service Bus-Namespace

Befolgen Sie die Anleitungen in diesem Tutorial: Schnellstart: Erstellen eines Service Bus-Themas und eines oder mehrerer Abonnements dieses Themas im Azure-Portal, um folgende Aufgaben durchzuführen:

  • Erstellen eines Service Bus Premium-Namespace.
  • Abrufen der Verbindungszeichenfolge.
  • Erstellen eines Service Bus-Themas.
  • Erstellen eines Abonnements für das Thema. In diesem Tutorial wird nur ein einzelnes Abonnement benötigt. Die Abonnements S2 und S3 müssen also nicht erstellt werden.

Senden von Nachricht an das Service Bus-Thema

In diesem Schritt wird eine Beispielanwendung verwendet, um Nachrichten an das Service Bus-Thema zu senden, das Sie im vorherigen Schritt erstellt haben.

  1. Klonen Sie das GitHub-Repository „azure-service-bus repository“, oder laden Sie die ZIP-Datei herunter, und extrahieren Sie Dateien daraus.

  2. Navigieren Sie in Visual Studio zum Ordner \samples\DotNet\Azure.Messaging.ServiceBus\ServiceBusEventGridIntegrationV2, und öffnen Sie die Datei SBEventGridIntegration.sln.

  3. Erweitern Sie im Fenster des Projektmappen-Explorers das Projekt MessageSender, und wählen Sie Program.cs aus.

  4. Ersetzen Sie <SERVICE BUS NAMESPACE - CONNECTION STRING> durch die Verbindungszeichenfolge für Ihren Service Bus-Namespace und <TOPIC NAME> durch den Namen des Themas.

    const string ServiceBusConnectionString = "<SERVICE BUS NAMESPACE - CONNECTION STRING>";
    const string TopicName = "<TOPIC NAME>";
    
  5. Erstellen Sie das Programm, und führen Sie es aus, um fünf Testnachrichten (const int numberOfMessages = 5;) an das Service Bus-Thema zu senden.

    Ausgabe der Konsolen-App

Empfangen von Nachrichten mithilfe von Logik-Apps

In diesem Schritt erstellen Sie eine Azure-Logik-App, die Service Bus-Ereignisse über Azure Event Grid empfängt.

  1. Wählen Sie +Ressource erstellen, dann Integration und schließlich Logik-App aus.

    Screenshot des Logikappmenüs „Ressource erstellen -> Integration ->“.

  2. Führen Sie auf der Seite Logik-App erstellen die folgenden Schritte aus:

    1. Wählen Sie Ihr Azure- Abonnementaus.
    2. Wählen Sie für die RessourcengruppeVorhandene verwenden aus, und wählen Sie die Ressourcengruppe aus, die Sie für andere Ressourcen (wie Azure-Funktion, Service Bus-Namespace) verwendet haben, die Sie zuvor erstellt haben.
    3. Geben Sie einen Namen für die Logik-App ein.
    4. Wählen Sie die Region für die Logik-App aus.
    5. Wählen Sie für den PlantypVerbrauch aus.
    6. Klicken Sie auf Überprüfen + erstellen. Screenshot, der die Seite „Logikapp erstellen“ zeigt.
    7. Wählen Sie auf der Seite Überprüfen und erstellen die Option Erstellen aus, um die Logik-App zu erstellen.
  3. Wählen Sie auf der Seite Bereitstellung abgeschlossenZur Ressource wechseln aus, um zur Seite Logik-App zu navigieren.

  4. Wählen Sie auf der Seite Designer für Logik-Apps unter Vorlagen den Eintrag Leere Logik-App aus.

Hinzufügen eines Schritts zum Empfangen von Nachrichten von Service Bus über Event Grid

  1. Wählen Sie auf der Seite Logik-AppLogik-App-Designer im linken Menü aus.

  2. Wählen Sie im rechten Bereich unter Vorlagenleere Logik-Appaus.

    Screenshot der Seite „Logikappdesigner“ mit ausgewählter Option „Leere Logikapp“.

  3. Führen Sie im Designer folgende Schritte aus:

    1. Suchen Sie nach Event Grid.

    2. Wählen Sie Wenn ein Ressourcenereignis eintritt – Azure Event Grid aus.

      Screenshot: Logic Apps-Designer mit ausgewähltem Event Grid-Auslöser.

  4. Wählen Sie anmelden aus.

    Screenshot des Logic Apps-Designers mit ausgewählter Schaltfläche „Anmelden“.

  5. Wählen Sie auf der Seite Anmelden bei Ihrem Konto das Konto aus, das Sie für die Anmeldung bei Azure verwenden möchten. 1.

  6. Führen Sie auf der Seite Bei Auftreten eines Ressourcenereignisses die folgenden Schritte aus:

    1. Wählen Sie Ihr Azure-Abonnement.

    2. Wählen Sie für Ressourcentyp den Wert Microsoft.ServiceBus.Namespaces aus.

    3. Wählen Sie für Ressourcenname Ihren Service Bus-Namespace aus.

    4. Wählen Sie Neuen Parameter hinzufügen > Suffixfilter aus, und verschieben Sie dann den Fokus auf eine Stelle außerhalb der Dropdownliste.

      Screenshot, der das Hinzufügen eines neuen Parameters vom Typ Suffixfilter zeigt.

    5. Geben Sie für Suffixfilter den Namen Ihres Service Bus-Themenabonnements ein.

      Screenshot: Logikappdesigner mit Verbindungskonfiguration für den Service Bus-Namespace.

  7. Wählen Sie im Designer + Neuer Schritt aus, und führen Sie die folgenden Schritte aus:

    1. Suchen Sie nach Service Bus.

    2. Wählen Sie in der Liste Service Bus aus.

      Screenshot: Auswahl von Service Bus.

    3. Wählen Sie in der Liste Aktionen den Eintrag Nachrichten abrufen aus.

    4. Wählen Sie Ruft Nachrichten aus einem Themenabonnement ab (Peek-Lock) aus.

      Screenshot: Logikappdesigner mit ausgewählter Option zum Abrufen von Nachrichten aus einem Themenabonnemen.

    5. Führen Sie folgende Schritte aus:

      1. Geben Sie einen Namen für die Verbindung ein. Beispiel: Abrufen von Nachrichten aus dem Themenabonnement.

      2. Vergewissern Sie sich, dass Authentifizierungstyp auf Zugriffsschlüssel festgelegt ist.

      3. Kopieren Sie für die Angabe Verbindungszeichenfolge die Verbindungszeichenfolge, und fügen Sie sie in den Service Bus-Namespace ein, den Sie zuvor gespeichert haben.

      4. Klicken Sie auf Erstellen.

        Screenshot: Logikappdesigner mit angegebener Service Bus-Verbindungszeichenfolge.

    6. Wählen Sie Ihr Thema und Abonnement aus.

      Screenshot: Logikappdesigner mit angegebenem Service Bus-Thema und -Abonnement.

Hinzufügen eines Schritts zum Verarbeiten und Abschließen empfangener Nachrichten

In diesem Schritt fügen Sie Schritte hinzu, um die empfangene Nachricht in einer E-Mail zu senden und die Nachricht dann abzuschließen. In einem realen Szenario verarbeiten Sie eine Nachricht in der Logik-App, bevor Sie die Nachricht abschließen.

Hinzufügen einer ForEach-Schleife

  1. Wählen Sie + Neuer Schrittaus.

  2. Suchen Sie nach Steuerung, und wählen Sie anschließend diese Kategorie aus.

    Screenshot der Kategorie „Steuerelement“.

  3. Wählen Sie in der Liste Aktionen die Aktion For each aus.

    Screenshot des ausgewählten Vorgangs „Für jeden Vorgang“.

  4. Wählen Sie für Select an output from previous steps („Ausgabe aus vorherigen Schritten auswählen“) (klicken Sie ggf. in das Textfeld) die Option Body („Text“) unter Ruft Nachrichten aus einem Themenabonnement ab (Peek-Lock) aus.

    Screenshot der Auswahl von „Für jede Eingabe“.

Hinzufügen eines Schritts innerhalb der ForEach-Schleife zum Senden einer E-Mail mit dem Nachrichtentext

  1. Wählen Sie innerhalb der ForEach-Schleife den Befehl Aktion hinzufügen aus.

    Screenshot der Auswahl der Schaltfläche „Aktion hinzufügen“ in „Für jede Schleife“.

  2. Geben Sie in das Textfeld Connectors und Aktionen durchsuchen den Eintrag Office 365 ein.

  3. Wählen Sie in den Suchergebnissen Office 365 Outlook aus.

    Screenshot: Auswahl von Office 365.

  4. Wählen Sie in der Liste der Aktionen E-Mail senden (V2) aus.

    Screenshot der Auswahl des Vorgangs „E-Mail senden“.

  5. Wählen Sie Anmelden und folgen Sie den Schritten, um eine Verbindung zu Office 365 Outlook herzustellen.

  6. Gehen Sie im Fenster E-Mail senden (V2) wie folgt vor:

  7. Wählen Sie innerhalb des Textfelds einen Text für Body (Text) aus, und führen Sie die folgenden Schritte aus:

    1. Für To („An“) geben Sie eine E-Mail-Adresse ein.

    2. Für Subject („Betreff“) geben Sie Vom Service Bus-Themenabonnement empfangene Nachricht ein.

    3. Wechseln Sie zu Ausdruck.

    4. Geben Sie den folgenden Ausdruck ein:

      base64ToString(items('For_each')?['ContentData'])
      
    5. Wählen Sie OK aus.

      Screenshot des Ausdrucks für „Textkörper“ der Aktivität „E-Mail senden“.

Hinzufügen einer weiteren Aktion in der ForEach-Schleife zum Abschließen der Nachricht

  1. Wählen Sie innerhalb der ForEach-Schleife den Befehl Aktion hinzufügen aus.

    1. Wählen Sie Service Bus in der Liste Recent („Zuletzt verwendet“) aus.

    2. Wählen Sie in der Liste der Aktionen Nachricht in einem Themenabonnement abschließen aus.

      Screenshot der Auswahl von „Nachricht abschließen“ in einem Themenabonnement.

    3. Wählen Sie Ihr Service Bus-Thema aus.

    4. Wählen Sie ein Abonnement für das Thema aus.

    5. Wählen Sie für Sperrtoken der Nachricht die Option Sperrtoken aus dem Dynamischen Inhalt aus.

      Screenshot des Felds „Token sperren“.

  2. Wählen Sie in der Symbolleiste des Designers für Logik-Apps Speichern aus, um die Logik-App zu speichern.

    Screenshot der Schaltfläche „Speichern“ in der erstellten Logikapp.

Testen der App

  1. Falls Sie noch keine Testnachrichten an das Thema gesendet haben, sollten Sie die Anleitung im Abschnitt Senden von Nachricht an das Service Bus-Thema befolgen.

  2. Wechseln Sie zur Seite Übersicht Ihrer Logik-App und dann im unteren Bereich zur Registerkarte Ausführungsverlauf. Sie sehen die an das Thema gesendeten Nachrichten zu Logik-App-Ausführungen. Es kann einige Minuten dauern, bis die Ausführungen der Logik-App angezeigt werden. Wählen Sie in der Symbolleiste die Option Aktualisieren aus, um die Seite zu aktualisieren.

    Screenshot des Ausführungsverlaufs der Logikapp.

  3. Wählen Sie eine Ausführung der Logik-App aus, um die Details dafür anzuzeigen. Beachten Sie, dass in der for-Schleife fünf Nachrichten verarbeitet wurden.

    Screenshot, der die Details für die ausgewählte Logikappausführung zeigt.

  4. Sie sollten eine E-Mail für jede Nachricht erhalten, die von der Logik-App empfangen wird.

    Screenshot von Outlook mit den Nachrichten, die vom Abonnement der Themen empfangen wurden.

Problembehandlung

Führen Sie diese Schritte aus, falls keine Aufrufe angezeigt werden, nachdem Sie etwas abgewartet und eine Aktualisierung durchgeführt haben:

  1. Vergewissern Sie sich, dass die Nachrichten das Service Bus-Thema erreicht haben. Weitere Informationen finden Sie auf der Seite Service Bus-Thema unter dem Zähler Eingehende Nachrichten. In diesem Fall habe ich die MessageSender-Anwendung einmal ausgeführt, so dass ich 5 Nachrichten sehe.

    Screenshot der Seite „Service Bus-Thema“ mit ausgewählter Anzahl eingehender Nachrichten.

  2. Vergewissern Sie sich, dass für das Service Bus-Abonnement keine aktiven Nachrichten vorhanden sind. Falls auf dieser Seite keine Ereignisse angezeigt werden, sollten Sie sich vergewissern, dass auf der Seite Service Bus-Abonnement kein Wert für Anzahl aktiver Nachrichten angezeigt wird. Wenn die Anzahl für diesen Zähler größer als 0 ist, werden die Nachrichten des Abonnements aus irgendeinem Grund nicht an die Handlerfunktion (Handler für Ereignisabonnement) weitergeleitet. Vergewissern Sie sich, dass Sie das Ereignisabonnement richtig eingerichtet haben.

    Screenshot der Seite „Service Bus-Abonnement“ mit ausgewählter Anzahl der aktiven Nachrichten.

  3. Darüber hinaus werden übermittelte Ereignisse auf der Seite Ereignisse des Service Bus-Namespace angezeigt.

    Screenshot der Seite „Ereignisse“ der Seite „Service Bus-Namespace“.

  4. Sie können auch auf der Seite Ereignisabonnement verfolgen, dass die Ereignisse übermittelt wurden. Sie können auf diese Seite zugreifen, indem Sie auf der Seite Ereignisse das Ereignisabonnement auswählen.

    Screenshot der Seite „Ereignisabonnement“ mit ausgewählter Ereignisanzahl.

Nächste Schritte