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.

    Console app output

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. Erstellen Sie im Azure-Portal eine Logik-App.
    1. Wählen Sie +Ressource erstellen, dann Integration und schließlich Logik-App aus.
    2. Wählen Sie Ihr Azure- Abonnementaus.
    3. 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.
    4. Wählen Sie unter Typ die Option Verbrauch aus.
    5. Geben Sie einen Namen für die Logik-App ein.
    6. Wählen Sie die Region für die Logik-App aus.
    7. Klicken Sie auf Überprüfen + erstellen.
    8. Wählen Sie auf der Seite Überprüfen und erstellen die Option Erstellen aus, um die Logik-App zu erstellen.
    9. Wählen Sie auf der Seite Deployment complete (Bereitstellung abgeschlossen) die Option Zu Ressource wechseln aus.
  2. 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. 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.

      Logic Apps Designer - select Event Grid trigger

  2. Wählen Sie Anmelden aus, geben Sie Ihre Azure-Anmeldeinformationen ein, und wählen Sie Zugriff zulassen aus.
  3. 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.

      Image showing the addition of a suffix filter.

    5. Geben Sie für Suffixfilter den Namen Ihres Service Bus-Themenabonnements ein. Logic Apps Designer - configure event

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

    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.

      Logic Apps Designer - get messages action

    5. Geben Sie einen Namen für die Verbindung ein. Beispiel: Rufen Sie Nachrichten aus einem Themenabonnement ab, und wählen Sie den Service Bus-Namespace aus.

      Logic Apps Designer - select the Service Bus namespace

    6. Wählen Sie RootManageSharedAccessKey und dann Erstellen aus.

      Logic Apps Designer - select the shared access key

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

      Screenshot that shows where you select your topic and subscription.

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.

    Image showing selection of Control category

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

    Image showing selection of For each control

  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.

    Image showing the selection of input to For each

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.

    Image showing the selection of add an action button inside the for each loop

  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.

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

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

  6. 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. Klicken Sie auf OK.

      Image showing the expression for Body of the Send an email activity.

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.

    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.

      Logic Apps Designer - complete the message

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

    Save logic app

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.

    Logic Apps Designer - logic app runs

  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.

    Logic app run details

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

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 Anwendung MessageSender zweimal ausgeführt, sodass zehn Nachrichten angezeigt werden (fünf Nachrichten pro Ausführung).

    Service Bus Topic page - incoming messages

  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.

    Active message count at the Service Bus subscription

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

    Events page - delivered events

  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.

    Event subscription page - delivered events

Nächste Schritte