Tutorial: Senden von E-Mail-Benachrichtigungen zu Azure IoT Hub-Ereignissen mit Event Grid und Logic Apps
Azure Event Grid ermöglicht es Ihnen, auf Ereignisse in IoT Hub zu reagieren, indem Sie Aktionen in Ihren nachgeschalteten Geschäftsanwendungen auslösen.
In diesem Artikel wird Schritt für Schritt eine Beispielkonfiguration beschrieben, bei der IoT Hub und Event Grid verwendet werden. Am Ende verfügen Sie über eine Azure-Logik-App, durch die eine Benachrichtigungs-E-Mail gesendet wird, wenn ein Gerät eine Verbindung mit Ihrem IoT-Hub herstellt oder die Verbindung mit Ihrem IoT-Hub trennt. Event Grid kann verwendet werden, um zeitnah eine Benachrichtigung zu erhalten, wenn die Verbindung mit kritischen Geräten getrennt wird. Es kann bei Metriken und Diagnosen mehrere Minuten dauern (etwa 20 Minuten oder mehr), bis sie in Protokollen/Warnungen angezeigt werden. Längere Verarbeitungszeiten können für kritische Infrastruktur inakzeptabel sein.
Wenn Sie kein Azure-Abonnement haben, erstellen Sie ein kostenloses Azure-Konto, bevor Sie beginnen.
Voraussetzungen
- Ein E-Mail-Konto eines beliebigen, von Azure Logic Apps unterstützten E-Mail-Anbieters (beispielsweise Office 365 Outlook oder Outlook.com). Mit diesem E-Mail-Konto werden die Ereignisbenachrichtigungen gesendet.
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
Erstellen eines IoT-Hubs
Mit dem Azure Cloud Shell-Terminal im Portal können Sie schnell einen neuen IoT-Hub erstellen.
Melden Sie sich beim Azure-Portal an.
Wählen Sie rechts oben auf der Seite die Schaltfläche „Cloud Shell“ aus.
Führen Sie den folgenden Befehl aus, um eine neue Ressourcengruppe zu erstellen:
az group create --name {your resource group name} --location westus
Führen Sie den folgenden Befehl aus, um einen IoT-Hub zu erstellen:
az iot hub create --name {your iot hub name} --resource-group {your resource group name} --sku S1
Minimieren Sie das Cloud Shell-Terminal. Die Shell wird im weiteren Verlauf dieses Tutorials noch benötigt.
Erstellen einer Logik-App
Erstellen Sie im nächsten Schritt eine Logik-App, und fügen Sie einen HTTP-basierten Event Grid-Trigger für die Verarbeitung von Anforderungen des IoT-Hubs hinzu.
Erstellen einer Logik-App-Ressource
Wählen Sie im Azure-Portal die Option Ressource erstellen aus, geben Sie im Suchfeld den Suchbegriff „Logik-App“ ein, und drücken Sie die EINGABETASTE. Wählen Sie aus den Ergebnissen den Eintrag Logik-App aus.
Wählen Sie auf dem nächsten Bildschirm die Option Erstellen aus.
Geben Sie der Logik-App einen in Ihrem Abonnement eindeutigen Namen, und wählen Sie dann dasselbe Abonnement, dieselbe Ressourcengruppe und denselben Standort wie für Ihren IoT Hub aus. Wählen Sie den als Plantyp Verbrauchsplan aus.
Klicken Sie auf Überprüfen + erstellen.
Überprüfen Sie Ihre Einstellungen, und wählen Sie anschließend Erstellen aus.
Wählen Sie nach Erstellung der Ressource die Option Zu Ressource wechseln aus.
Navigieren Sie auf der Seite des Designers für Logik-Apps nach unten zu Vorlagen. Wählen Sie die Option Leere Logik-App aus, um Ihre Logik-App von Grund auf neu zu erstellen.
Auswählen eines Triggers
Ein Trigger ist ein bestimmtes Ereignis, durch das Ihre Logik-App gestartet wird. In diesem Tutorial empfängt der Trigger, der den Workflow einleitet, eine Anforderung über HTTP.
Geben Sie auf der Suchleiste für Connectors und Trigger die Zeichenfolge HTTP ein.
Scrollen Sie durch die Ergebnisse, und wählen Sie Anforderung – Beim Empfang einer HTTP-Anforderung als Trigger aus.
Wählen Sie Verwenden Sie Beispielnutzdaten, um ein Schema zu generieren.
Kopieren Sie den folgenden
json
-Code, und ersetzen Sie die<>
-Platzhalterwerte durch Ihre eigenen Werte.Fügen Sie den JSON-Code des Schemas für das Ereignis „Gerät verbunden“ JSON in das Textfeld ein, und wählen Sie Fertig aus:
[{ "id": "f6bbf8f4-d365-520d-a878-17bf7238abd8", "topic": "/SUBSCRIPTIONS/<azure subscription ID>/RESOURCEGROUPS/<resource group name>/PROVIDERS/MICROSOFT.DEVICES/IOTHUBS/<hub name>", "subject": "devices/LogicAppTestDevice", "eventType": "Microsoft.Devices.DeviceConnected", "eventTime": "2018-06-02T19:17:44.4383997Z", "data": { "deviceConnectionStateEventInfo": { "sequenceNumber": "000000000000000001D4132452F67CE200000002000000000000000000000001" }, "hubName": "<hub name>", "deviceId": "LogicAppTestDevice", "moduleId" : "DeviceModuleID" }, "dataVersion": "1", "metadataVersion": "1" }]
Wichtig
Achten Sie darauf, den JSON-Ausschnitt in das Feld einzufügen, das vom Link Beispielnutzdaten zum Generieren eines Schemas bereitgestellt wird, und nicht direkt in das Feld Anforderungstext JSON-Schema. Der Link für die Beispielnutzdaten bietet eine Möglichkeit, den JSON-Inhalt basierend auf dem JSON-Ausschnitt zu generieren. Der endgültige JSON-Code, der im Anforderungstext verwendet wird, unterscheidet sich vom JSON-Ausschnitt.
Dieses Ereignis wird veröffentlicht, wenn ein Gerät mit einem IoT-Hub verbunden ist.
Hinweis
Möglicherweise erhalten Sie die Popupbenachrichtigung Denken Sie daran, in Ihre Anforderung einen Content-Type-Header einzuschließen, der auf „application/json“ festgelegt ist. Sie können diesen Vorschlag ignorieren und mit dem nächsten Abschnitt fortfahren.
Erstellen einer App
Aktionen sind alle Schritte, die auftreten, nachdem der Trigger den Logik-App-Workflow gestartet hat. Im Rahmen dieses Tutorials besteht die Aktion im Senden einer E-Mail-Benachrichtigung von Ihrem E-Mail-Anbieter.
Wählen Sie Neuer Schritt aus. Es wird ein Fenster angezeigt, in dem Sie aufgefordert werden, eine Aktion auszuwählen.
Suchen Sie nach Outlook.
Suchen Sie abhängig von Ihrem E-Mail-Anbieter nach dem entsprechenden Connector, und wählen Sie diesen aus. In diesem Tutorial wird Outlook.com verwendet. Die Schritte für andere E-Mail-Anbieter sind ähnlich. Alternativ können Sie Office 365 Outlook verwenden, um den Anmeldeschritt zu überspringen.
Wählen Sie die Aktion E-Mail senden (V2) aus.
Wählen Sie Anmelden aus, und melden Sie sich bei Ihrem E-Mail-Konto an. Wählen Sie Ja aus, damit die App auf Ihre Informationen zugreifen kann.
Erstellen Sie die E-Mail-Vorlage.
An: Geben Sie die E-Mail-Adresse zum Empfangen der Benachrichtigungs-E-Mails ein. Verwenden Sie für dieses Tutorial ein E-Mail-Konto, auf das Sie zu Testzwecken zugreifen können.
Antragsteller: Geben Sie den Text für den Betreff ein. Wenn Sie auf das Textfeld „Betreff“ klicken, können Sie dynamischen Inhalt auswählen, der eingefügt werden soll. In diesem Tutorial wird beispielsweise
IoT Hub alert: {eventType}
verwendet. Wenn Dynamische Inhalte nicht angezeigt werden können, wählen Sie den Link Dynamischen Inhalt hinzufügen aus, um die Ansicht Dynamischer Inhalt umzuschalten.
Nachdem Sie
eventType
ausgewählt haben, wird die bisherige E-Mail-Formularausgabe angezeigt. Wählen Sie Senden und E-Mail (V2) aus, um den Textkörper Ihrer E-Mail zu bearbeiten.- Text: Schreiben Sie den Text für Ihre E-Mail. Wählen Sie im Auswahltool JSON-Eigenschaften aus, um dynamische Inhalte basierend auf Ereignisdaten einzuschließen. Wählen Sie unter dem Textfeld Text den Hyperlink Dynamischen Inhalt hinzufügen aus, falls der dynamische Inhalt nicht angezeigt wird. Falls die gewünschten Felder nicht angezeigt werden, klicken Sie im Fenster „Dynamische Inhalte“ auf Mehr, um die Felder der vorherigen Aktion einzufügen.
Ihre E-Mail-Vorlage könnte folgendem Beispiel entsprechen:
Wählen Sie im Logik-App-Designer die Option Speichern aus.
Kopieren der HTTP-URL
Bevor Sie den Logik-App-Designer verlassen, kopieren Sie die URL, auf der Ihre Logik-App auf einen Trigger lauscht. Verwenden Sie diese URL zum Konfigurieren von Event Grid.
Erweitern Sie das Triggerkonfigurationsfeld Beim Empfang einer HTTP-Anforderung, indem Sie darauf klicken.
Kopieren Sie den Wert HTTP POST-URL durch Auswählen der Kopierschaltfläche daneben.
Speichern Sie diese URL, damit Sie sie im nächsten Abschnitt verwenden können.
Konfigurieren des Abonnements für IoT Hub-Ereignisse
In diesem Abschnitt konfigurieren Sie Ihren IoT Hub zum Veröffentlichen von Ereignissen, sobald diese auftreten.
Navigieren Sie im Azure-Portal zu Ihrem IoT Hub. Sie können Ihren IoT-Hub finden, indem Sie IoT Hub in Ihrem Azure-Dashboard und dann Ihre IoT Hub-Instanz aus der Liste der Ressourcen auswählen.
Wählen Sie Ereignisse aus.
Klicken Sie auf Ereignisabonnement.
Erstellen Sie das Ereignisabonnement mit den folgenden Werten:
Gehen Sie im Abschnitt DETAILS ZUM EREIGNISABONNEMENT wie folgt vor:
- Geben Sie einen Namen für das Ereignisabonnement an.
- Wählen Sie als Ereignisschema die Option Event Grid-Schema aus.
Gehen Sie im Abschnitt THEMENDETAILS wie folgt vor:
- Vergewissern Sie sich, dass der Thementyp auf IoT Hub festgelegt ist.
- Vergewissern Sie sich, dass der Name des IoT-Hubs als Wert für das Feld Quellressource festgelegt ist.
- Geben Sie einen Namen für das zu erstellende Systemthema ein. Informationen zu Systemthemen finden Sie unter Übersicht über Systemthemen.
Gehen Sie im Abschnitt EREIGNISTYPEN wie folgt vor:
Wählen Sie die Dropdownliste Nach Ereignistypen filtern aus.
Deaktivieren Sie die Kontrollkästchen Gerät erstellt und Gerät gelöscht, sodass nur noch die Kontrollkästchen Gerät verbunden und Gerät getrennt aktiviert sind.
Gehen Sie im Abschnitt ENDPUNKTDETAILS wie folgt vor:
- Wählen Sie Webhook als Endpunkttyp aus.
- Klicken Sie auf Endpunkt auswählen. Fügen Sie die URL ein, die Sie aus Ihrer Logik-App kopiert haben, und bestätigen Sie die Auswahl.
Anschließend sollte der Bereich wie im folgenden Beispiel aussehen:
Wählen Sie Erstellen aus.
Simulieren eines neuen Geräts, das eine Verbindung herstellt und Telemetriedaten sendet
Testen Sie Ihre Logik-App, indem Sie über die Azure-Befehlszeilenschnittstelle schnell eine Geräteverbindung simulieren.
Wählen Sie die Schaltfläche „Cloud Shell“ aus, um das Terminal erneut zu öffnen.
Führen Sie den folgenden Befehl aus, um eine simulierte Geräteidentität zu erstellen:
az iot hub device-identity create --device-id simDevice --hub-name {YourIoTHubName}
Die Verarbeitung kann eine Minute dauern. Sobald sie erstellt wurde, wird eine JSON-Ausgabe in Ihrer Konsole angezeigt.
Führen Sie den folgenden Befehl aus, um zu simulieren, dass Ihr Gerät eine Verbindung mit IoT Hub herstellt und Telemetriedaten sendet:
az iot device simulate -d simDevice -n {YourIoTHubName}
Wenn das simulierte Gerät eine Verbindung mit dem IoT Hub herstellt, erhalten Sie eine E-Mail mit einem Hinweis auf ein Ereignis vom Typ „DeviceConnected“.
Nach Abschluss der Simulation erhalten Sie eine E-Mail mit einem Hinweis auf ein Ereignis vom Typ „DeviceDisconnected“.
Bereinigen von Ressourcen
In diesem Tutorial werden Ressourcen verwendet, für die Gebühren in Ihrem Azure-Abonnement anfallen. Wenn Sie das Ausprobieren des Tutorials und Testen Ihrer Ergebnisse abgeschlossen haben, deaktivieren oder löschen Sie die Ressourcen, die Sie nicht beibehalten möchten.
Löschen Sie die Ressourcengruppe, falls Sie alle für dieses Tutorial erstellten Ressourcen löschen möchten.
Wählen Sie die Option Ressourcengruppen und anschließend die Ressourcengruppe aus, die Sie für dieses Tutorial erstellt haben.
Wählen Sie im Bereich „Ressourcengruppe“ die Option Ressourcengruppe löschen aus. Sie werden aufgefordert, den Namen der Ressourcengruppe einzugeben. Anschließend können Sie sie löschen. Alle darin enthaltenen Ressourcen werden ebenfalls entfernt.
Nächste Schritte
- Erfahren Sie mehr über das Reagieren auf Ereignisse in IoT Hub mithilfe von Event Grid zum Auslösen von Aktionen.
- Erfahren Sie, wie Sie Ereignisse im Zusammenhang mit der Herstellung und Trennung von Geräteverbindungen sortieren.
- Erfahren Sie mehr über die Möglichkeiten mit Event Grid.
Eine vollständige Liste der unterstützten Logic App-Connectors finden Sie in der