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.

  1. Melden Sie sich beim Azure-Portal an.

  2. Wählen Sie rechts oben auf der Seite die Schaltfläche „Cloud Shell“ aus.

    Screenshot of how to open the Azure Cloud Shell from the Azure portal.

  3. Führen Sie den folgenden Befehl aus, um eine neue Ressourcengruppe zu erstellen:

    az group create --name {your resource group name} --location westus
    
  4. 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 
    
  5. 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

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

    Screenshot of how to select the logic app from a list of resources.

  2. Wählen Sie auf dem nächsten Bildschirm die Option Erstellen aus.

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

    Screenshot of how to configure your logic app.

  4. Klicken Sie auf Überprüfen + erstellen.

  5. Überprüfen Sie Ihre Einstellungen, und wählen Sie anschließend Erstellen aus.

  6. Wählen Sie nach Erstellung der Ressource die Option Zu Ressource wechseln aus.

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

    Screenshot of the Logic App Designer templates.

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.

  1. Geben Sie auf der Suchleiste für Connectors und Trigger die Zeichenfolge HTTP ein.

  2. Scrollen Sie durch die Ergebnisse, und wählen Sie Anforderung – Beim Empfang einer HTTP-Anforderung als Trigger aus.

    Select HTTP request trigger

  3. Wählen Sie Verwenden Sie Beispielnutzdaten, um ein Schema zu generieren.

    Use sample payload

  4. Kopieren Sie den folgenden json-Code, und ersetzen Sie die <>-Platzhalterwerte durch Ihre eigenen Werte.

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

  1. Wählen Sie Neuer Schritt aus. Es wird ein Fenster angezeigt, in dem Sie aufgefordert werden, eine Aktion auszuwählen.

  2. Suchen Sie nach Outlook.

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

    Select email provider connector

  4. Wählen Sie die Aktion E-Mail senden (V2) aus.

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

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

    Screenshot of the condensed body output form.

    • 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:

    Screenshot of how to create an event email in the template.

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

  1. Erweitern Sie das Triggerkonfigurationsfeld Beim Empfang einer HTTP-Anforderung, indem Sie darauf klicken.

  2. Kopieren Sie den Wert HTTP POST-URL durch Auswählen der Kopierschaltfläche daneben.

    Copy the HTTP POST URL

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

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

  2. Wählen Sie Ereignisse aus.

    Open the Event Grid details

  3. Klicken Sie auf Ereignisabonnement.

    Create new event subscription

  4. Erstellen Sie das Ereignisabonnement mit den folgenden Werten:

    1. Gehen Sie im Abschnitt DETAILS ZUM EREIGNISABONNEMENT wie folgt vor:

      1. Geben Sie einen Namen für das Ereignisabonnement an.
      2. Wählen Sie als Ereignisschema die Option Event Grid-Schema aus.
    2. Gehen Sie im Abschnitt THEMENDETAILS wie folgt vor:

      1. Vergewissern Sie sich, dass der Thementyp auf IoT Hub festgelegt ist.
      2. Vergewissern Sie sich, dass der Name des IoT-Hubs als Wert für das Feld Quellressource festgelegt ist.
      3. Geben Sie einen Namen für das zu erstellende Systemthema ein. Informationen zu Systemthemen finden Sie unter Übersicht über Systemthemen.
    3. Gehen Sie im Abschnitt EREIGNISTYPEN wie folgt vor:

      1. Wählen Sie die Dropdownliste Nach Ereignistypen filtern aus.

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

        select subscription event types

    4. Gehen Sie im Abschnitt ENDPUNKTDETAILS wie folgt vor:

      1. Wählen Sie Webhook als Endpunkttyp aus.
      2. 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.

      select endpoint url

      Anschließend sollte der Bereich wie im folgenden Beispiel aussehen:

      Screenshot of your 'Create Event Subscription' page in the Azure portal.

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

  1. Wählen Sie die Schaltfläche „Cloud Shell“ aus, um das Terminal erneut zu öffnen.

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

  3. 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}
    
  4. 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“.

  5. Nach Abschluss der Simulation erhalten Sie eine E-Mail mit einem Hinweis auf ein Ereignis vom Typ „DeviceDisconnected“.

    Screenshot of the email you should receive.

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.

  1. Wählen Sie die Option Ressourcengruppen und anschließend die Ressourcengruppe aus, die Sie für dieses Tutorial erstellt haben.

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

Eine vollständige Liste der unterstützten Logic App-Connectors finden Sie in der