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.
Klonen Sie das GitHub-Repository „azure-service-bus repository“, oder laden Sie die ZIP-Datei herunter, und extrahieren Sie Dateien daraus.
Navigieren Sie in Visual Studio zum Ordner \samples\DotNet\Azure.Messaging.ServiceBus\ServiceBusEventGridIntegrationV2, und öffnen Sie die Datei SBEventGridIntegration.sln.
Erweitern Sie im Fenster des Projektmappen-Explorers das Projekt MessageSender, und wählen Sie Program.cs aus.
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>";
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.
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.
Wählen Sie +Ressource erstellen, dann Integration und schließlich Logik-App aus.
Führen Sie auf der Seite Logik-App erstellen die folgenden Schritte aus:
- Wählen Sie Ihr Azure- Abonnementaus.
- 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.
- Geben Sie einen Namen für die Logik-App ein.
- Wählen Sie die Region für die Logik-App aus.
- Wählen Sie für den PlantypVerbrauch aus.
- Klicken Sie auf Überprüfen + erstellen.
- Wählen Sie auf der Seite Überprüfen und erstellen die Option Erstellen aus, um die Logik-App zu erstellen.
Wählen Sie auf der Seite Bereitstellung abgeschlossen Zur Ressource wechseln aus, um zur Seite Logik-App zu navigieren.
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
Wählen Sie auf der Seite Logik-App Logik-App-Designer im linken Menü aus.
Wählen Sie im rechten Bereich unter Vorlagen leere Logik-Appaus.
Führen Sie im Designer folgende Schritte aus:
Suchen Sie nach Event Grid.
Wählen Sie Wenn ein Ressourcenereignis eintritt – Azure Event Grid aus.
Wählen Sie anmelden aus.
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.
Führen Sie auf der Seite Bei Auftreten eines Ressourcenereignisses die folgenden Schritte aus:
Wählen Sie Ihr Azure-Abonnement.
Wählen Sie für Ressourcentyp den Wert Microsoft.ServiceBus.Namespaces aus.
Wählen Sie für Ressourcenname Ihren Service Bus-Namespace aus.
Wählen Sie Neuen Parameter hinzufügen > Suffixfilter aus, und verschieben Sie dann den Fokus auf eine Stelle außerhalb der Dropdownliste.
Geben Sie für Suffixfilter den Namen Ihres Service Bus-Themenabonnements ein.
Wählen Sie im Designer + Neuer Schritt aus, und führen Sie die folgenden Schritte aus:
Suchen Sie nach Service Bus.
Wählen Sie in der Liste Service Bus aus.
Wählen Sie in der Liste Aktionen den Eintrag Nachrichten abrufen aus.
Wählen Sie Ruft Nachrichten aus einem Themenabonnement ab (Peek-Lock) aus.
Führen Sie folgende Schritte aus:
Geben Sie einen Namen für die Verbindung ein. Beispiel: Abrufen von Nachrichten aus dem Themenabonnement.
Vergewissern Sie sich, dass Authentifizierungstyp auf Zugriffsschlüssel festgelegt ist.
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.
Klicken Sie auf Erstellen.
Wählen Sie Ihr Thema und Abonnement aus.
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
Wählen Sie + Neuer Schrittaus.
Suchen Sie nach Steuerung, und wählen Sie anschließend diese Kategorie aus.
Wählen Sie in der Liste Aktionen die Aktion For each aus.
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.
Hinzufügen eines Schritts innerhalb der ForEach-Schleife zum Senden einer E-Mail mit dem Nachrichtentext
Wählen Sie innerhalb der ForEach-Schleife den Befehl Aktion hinzufügen aus.
Geben Sie in das Textfeld Connectors und Aktionen durchsuchen den Eintrag Office 365 ein.
Wählen Sie in den Suchergebnissen Office 365 Outlook aus.
Wählen Sie in der Liste der Aktionen E-Mail senden (V2) aus.
Wählen Sie Anmelden und folgen Sie den Schritten, um eine Verbindung zu Office 365 Outlook herzustellen.
Gehen Sie im Fenster E-Mail senden (V2) wie folgt vor:
Wählen Sie innerhalb des Textfelds einen Text für Body (Text) aus, und führen Sie die folgenden Schritte aus:
Für To („An“) geben Sie eine E-Mail-Adresse ein.
Für Subject („Betreff“) geben Sie Vom Service Bus-Themenabonnement empfangene Nachricht ein.
Wechseln Sie zu Ausdruck.
Geben Sie den folgenden Ausdruck ein:
base64ToString(items('For_each')?['ContentData'])
Wählen Sie OK aus.
Hinzufügen einer weiteren Aktion in der ForEach-Schleife zum Abschließen der Nachricht
Wählen Sie innerhalb der ForEach-Schleife den Befehl Aktion hinzufügen aus.
Wählen Sie Service Bus in der Liste Recent („Zuletzt verwendet“) aus.
Wählen Sie in der Liste der Aktionen Nachricht in einem Themenabonnement abschließen aus.
Wählen Sie Ihr Service Bus-Thema aus.
Wählen Sie ein Abonnement für das Thema aus.
Wählen Sie für Sperrtoken der Nachricht die Option Sperrtoken aus dem Dynamischen Inhalt aus.
Wählen Sie in der Symbolleiste des Designers für Logik-Apps Speichern aus, um die Logik-App zu speichern.
Testen der App
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.
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.
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.
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:
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.
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.
Darüber hinaus werden übermittelte Ereignisse auf der Seite Ereignisse des Service Bus-Namespace angezeigt.
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.
Nächste Schritte
- Informieren Sie sich ausführlicher über Azure Event Grid.
- Erfahren Sie mehr über Azure Functions.
- Weitere Informationen zum Logic Apps-Feature von Azure App Service
- Weitere Informationen zu Azure Service Bus