Tutorial: Bereitstellen von Azure Stream Analytics als IoT Edge-Modul

Gilt für:IoT Edge 1.4 Häkchen IoT Edge 1.4

Wichtig

IoT Edge Version 1.4 wird unterstützt. Wenn Sie ein früheres Release verwenden, finden Sie weitere Informationen unter Aktualisieren von IoT Edge.

In diesem Tutorial erstellen Sie einen Azure Stream Analytics-Auftrag im Azure-Portal und stellen ihn anschließend ohne zusätzlichen Programmieraufwand als IoT Edge-Modul bereit.

Folgendes wird vermittelt:

  • Erstellen eines Azure Stream Analytics-Auftrags zum Verarbeiten von Daten auf dem Edge-Gerät.
  • Verbinden des neuen Azure Stream Analytics-Auftrags mit anderen IoT Edge-Modulen.
  • Bereitstellen des Azure Stream Analytics-Auftrags auf einem IoT Edge-Gerät über das Azure-Portal.

Diagramm: Streamarchitektur mit Staging und Bereitstellung eines Azure Stream Analytics-Auftrags

Das Stream Analytics-Modul in diesem Tutorial berechnet die Durchschnittstemperatur der letzten 30 Sekunden. Bei Erreichen einer Durchschnittstemperatur von 70 Grad sendet das Modul eine Warnung, damit das Gerät eine entsprechende Aktion ausführen kann. In diesem Fall wird der simulierte Temperatursensor zurückgesetzt. In einer Produktionsumgebung kann diese Funktion dazu verwendet werden, einen Computer herunterzufahren oder vorbeugende Maßnahmen zu ergreifen, wenn die Temperatur eine gefährliche Höhe erreicht.

Gründe für die Verwendung von Azure Stream Analytics in IoT Edge

Viele IoT-Lösungen verwenden Analysedienste, um Erkenntnisse zu Daten zu gewinnen, die von IoT-Geräten an die Cloud übermittelt werden. Mit Azure IoT Edge können Sie die Logik von Azure Stream Analytics direkt auf dem Gerät bereitstellen. Die Verarbeitung von Telemetriedatenströmen im Edgebereich verringert die Menge an Uploaddaten sowie die Zeit, die benötigt wird, um auf verwertbare Erkenntnisse zu reagieren. Azure IoT Edge und Azure Stream Analytics sind integriert, um Ihre Workloadentwicklung zu vereinfachen.

Azure Stream Analytics bietet eine umfassend strukturierte Abfragesyntax für die Datenanalyse in der Cloud und auf IoT Edge-Geräten. Weitere Informationen finden Sie in der Azure Stream Analytics-Dokumentation.

Voraussetzungen

Sollten Sie über kein Azure-Abonnement verfügen, können Sie zunächst ein kostenloses Azure-Konto erstellen.

  • Ein Azure IoT Edge-Gerät.

    Sie können einen virtuellen Azure-Computer als IoT Edge-Gerät verwenden, indem Sie die Schritte der Schnellstartanleitung für Linux- oder Windows-Geräte ausführen.

  • Eine IoT Hub-Instanz in Azure im Tarif „Free“ oder „Standard“.

Erstellen eines Azure Stream Analytics-Auftrags

In diesem Abschnitt erstellen Sie einen Azure Stream Analytics-Auftrag, der folgende Schritte ausführt:

  • Empfangen von Daten von Ihrem IoT Edge-Gerät
  • Abfragen der Telemetriedaten nach Werten außerhalb eines festgelegten Bereichs
  • Ergreifen von Maßnahmen für das IoT Edge-Gerät auf der Grundlage der Abfrageergebnisse

Speicherkonto erstellen

Wenn Sie einen Azure Stream Analytics-Auftrag zur Ausführung auf einem IoT Edge-Gerät erstellen, muss er so gespeichert werden, dass er vom Gerät aufgerufen werden kann. Sie können ein bereits vorhandenes Azure Storage-Konto verwenden oder jetzt ein neues erstellen.

  1. Navigieren Sie im Azure-Portal zu Ressource erstellen>Storage>Speicherkonto.

  2. Geben Sie die folgenden Werte an, um Ihr Speicherkonto zu erstellen:

    Feld Wert
    Subscription Wählen Sie das gleiche Abonnement wie für Ihren IoT Hub.
    Resource group Es empfiehlt sich, im Rahmen der IoT Edge-Schnellstartanleitungen und -Tutorials die gleiche Ressourcengruppe für alle Ihre Testressourcen zu verwenden. Beispielsweise IoTEdgeResources.
    Name Geben Sie einen eindeutigen Namen für Ihr Speicherkonto an.
    Standort Wählen Sie einen Standort in Ihrer Nähe aus.
  3. Behalten Sie in den restlichen Feldern die Standardwerte bei, und wählen Sie Überprüfen und erstellen aus.

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

Erstellen eines neuen Auftrags

  1. Wählen Sie im Azure-Portal Folgendes aus:

    1. Erstellen einer Ressource
    2. Internet der Dinge im Menü auf der linken Seite
    3. Geben Sie auf der Suchleiste Stream Analytics ein, um im Marketplace danach zu suchen.
    4. Wählen Sie Erstellen und dann im Dropdownmenü Stream Analytics-Auftrag aus.

    Screenshot: Suchen des Diensts für Stream Analytics-Aufträge im Marketplace und Erstellen eines neuen Auftrags

  2. Geben Sie die folgenden Werte an, um Ihren neuen Stream Analytics-Auftrag zu erstellen:

    Feld Wert
    Name Geben Sie einen Namen für Ihren Auftrag an. Beispielsweise IoTEdgeJob
    Subscription Wählen Sie das gleiche Abonnement wie für Ihren IoT Hub.
    Resource group Es wird empfohlen, dieselbe Ressourcengruppe für alle Testressourcen zu verwenden, die Sie während der IoT Edge-Schnellstarts und -Tutorials erstellen. Beispiel: eine Ressource mit dem Namen IoTEdgeResources
    Region Wählen Sie einen Standort in Ihrer Nähe aus.
    Hosting-Umgebung Wählen Sie Edge aus. Diese Option bedeutet, dass die Bereitstellung auf einem IoT Edge-Gerät statt in der Cloud erfolgt.
  3. Klicken Sie auf Überprüfen + erstellen.

  4. Bestätigen Sie Ihre Optionen, und wählen Sie dann Erstellen aus.

Konfigurieren des Auftrags

Nachdem Ihr Stream Analytics-Auftrag im Azure-Portal erstellt wurde, können Sie ihn mit einer Eingabe, einer Ausgabe und einer Abfrage konfigurieren, die für die Daten ausgeführt wird, die er durchläuft.

In diesem Abschnitt wird ein Auftrag erstellt, der Temperaturdaten von einem IoT Edge-Gerät empfängt. Die Daten werden in einem rollierenden Fenster von 30 Sekunden analysiert. Wenn die Durchschnittstemperatur in diesem Fenster auf mehr als 70 Grad ansteigt, wird eine Warnung an das IoT Edge-Gerät gesendet.

Hinweis

Im nächsten Abschnitt (Konfigurieren von IoT Edge-Einstellungen) legen Sie beim Bereitstellen des Auftrags genau fest, woher die Daten stammen und wohin sie gesendet werden.

Festlegen von Eingabe und Ausgabe

  1. Navigieren Sie im Azure-Portal zu Ihrem Stream Analytics-Auftrag.

  2. Wählen Sie unter Auftragstopologie die Option Eingaben und dann Eingabe hinzufügen aus.

    Screenshot: Hinzufügen der Streameingabe im Azure-Portal

  3. Wählen Sie in der Dropdownliste die Option Edge-Hub aus.

    Sollte die Option Edge-Hub in der Liste nicht angezeigt werden, haben Sie möglicherweise Ihren Stream Analytics-Auftrag als in der Cloud gehosteten Auftrag erstellt. Erstellen Sie einen neuen Auftrag mit Edge als Hostingumgebung.

  4. Geben Sie im Bereich Neue Eingabe die Temperatur als Eingabealias ein.

  5. Behalten Sie in den restlichen Feldern die Standardwerte bei, und wählen Sie Speichern.

  6. Öffnen Sie unter Auftragstopologie die Option Ausgaben, und wählen Sie dann Hinzufügen.

    Screenshot: Hinzufügen der Streamausgabe im Azure-Portal

  7. Wählen Sie in der Dropdownliste die Option Edge-Hub aus.

  8. Geben Sie im Bereich Neue Ausgabe die Warnung als Ausgabealias ein.

  9. Behalten Sie in den restlichen Feldern die Standardwerte bei, und wählen Sie Speichern.

Erstellen einer Abfrage

  1. Wählen Sie unter Auftragstopologie die Option Abfrage aus.

  2. Ersetzen Sie den Standardtext mit der folgenden Abfrage.

    SELECT  
        'reset' AS command
    INTO
       alert
    FROM
       temperature TIMESTAMP BY timeCreated
    GROUP BY TumblingWindow(second,30)
    HAVING Avg(machine.temperature) > 70
    

    In dieser Abfrage sendet der SQL-Code einen Zurücksetzungsbefehl an die Warnungsausgabe, wenn die durchschnittliche Maschinentemperatur in einem 30-sekündigen Fenster 70 Grad erreicht. Der Zurücksetzungsbefehl wurde im Sensor als ausführbare Aktion vorprogrammiert.

  3. Wählen Sie Abfrage speichern aus.

Konfigurieren von IoT Edge-Einstellungen

Um Ihren Stream Analytics-Auftrag auf die Bereitstellung auf einem IoT Edge-Gerät vorzubereiten, müssen Sie den Azure Stream Analytics-Auftrag einem Speicherkonto zuordnen. Wenn Sie Ihren Auftrag bereitstellen, wird die Auftragsdefinition in Form eines Containers in das Speicherkonto exportiert.

  1. Wählen Sie in Ihrem Stream Analytics-Dienst im Menü Einstellungen die Option Speicherkontoeinstellungen aus.

  2. Wählen Sie die Option Blobspeicher/ADLS Gen 2 aus Ihren Abonnements auswählen aus.

  3. Ihr Azure-Speicherkonto wird automatisch auf der Seite angezeigt. Wird es nicht angezeigt, müssen Sie einen Speicher erstellen. Wenn Sie einen anderen Speicher als den Speicher im Feld Speicherkonto auswählen müssen, wählen Sie ihn im Dropdownmenü aus.

  4. Wählen Sie Speichern aus, wenn Sie Änderungen vornehmen mussten.

    Screenshot: Hinzufügen eines Speicherkontos in Ihrem Stream Analytics-Auftrag im Azure-Portal

Bereitstellen des Auftrags

Sie können den Azure Stream Analytics-Auftrag jetzt auf Ihrem IoT Edge-Gerät bereitstellen.

In diesem Abschnitt verwenden Sie den Assistenten zum Festlegen von Modulen im Azure-Portal zum Erstellen eines Bereitstellungsmanifests. Ein Bereitstellungsmanifest ist eine JSON-Datei mit Beschreibungen für alle Module, die auf einem Gerät bereitgestellt werden. Das Manifest enthält außerdem die Containerregistrierungen, welche die Modulimages speichern, die Verwaltung der Module und die Kommunikationsmöglichkeiten für die Module untereinander. Ihr IoT Edge-Gerät ruft das Bereitstellungsmanifest aus IoT Hub ab und verwendet die Informationen darin zur Bereitstellung und Konfiguration aller seiner zugewiesenen Module.

In diesem Tutorial stellen Sie zwei Module bereit. Das erste ist das Modul SimulatedTemperatureSensor, das einen Sensor für Temperatur und Luftfeuchtigkeit simuliert. Das zweite ist Ihr Stream Analytics-Auftrag. Das Sensormodul stellt den Datenstrom bereit, der von Ihrer Auftragsabfrage analysiert wird.

  1. Navigieren Sie im Azure-Portal zu Ihrem IoT Hub.

  2. Wählen Sie im Menü Geräteverwaltung die Option Geräte und dann das IoT Edge-Gerät aus, um es zu öffnen.

  3. Wählen Sie Module festlegen aus.

  4. Wenn Sie zuvor das SimulatedTemperatureSensor-Modul auf diesem Gerät bereitgestellt haben, wird es unter Umständen automatisch aufgefüllt. Führen Sie andernfalls die folgenden Schritte aus, um das Modul hinzuzufügen:

    1. Wählen Sie + Hinzufügen und dann IoT Edge-Modul aus.
    2. Geben Sie SimulatedTemperatureSensor als Name ein.
    3. Geben Sie als Image-URI mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.4 ein.
    4. Lassen Sie die restlichen Standardeinstellungen unverändert, und wählen Sie Hinzufügen aus.
  5. Fügen Sie Ihren Azure Stream Analytics Edge-Auftrag wie folgt hinzu:

    1. Wählen Sie + Hinzufügen und anschließend Azure Stream Analytics-Modul aus.
    2. Wählen Sie das Abonnement und den erstellten Azure Stream Analytics Edge-Auftrag aus.
    3. Wählen Sie Speichern aus.

    Nach dem Speichern Ihrer Änderungen werden die Details Ihres Stream Analytics-Auftrags in dem von Ihnen erstellten Speichercontainer veröffentlicht.

  6. Nachdem die Stream Analytics-Ergänzung bereitgestellt wurde, vergewissern Sie sich, dass auf der Seite Module festlegen zwei neue Module angezeigt werden.

    Screenshot: Bestätigung, dass zwei neue Module auf Ihrem Gerät vorhanden sind. Auf dem Screenshot ist zudem die Position der Schaltfläche „Überprüfen + erstellen“ gezeigt.

  7. Klicken Sie auf Überprüfen + erstellen. Das Bereitstellungsmanifest wird angezeigt.

  8. Klicken Sie auf Erstellen.

  9. Auf der Seite Module festlegen Ihres Geräts sollten nach einigen Minuten die Module aufgelistet und ausgeführt werden. Aktualisieren Sie die Seite, wenn keine Module angezeigt werden, oder warten Sie einige Minuten, und aktualisieren Sie sie dann erneut.

    Screenshot: Modulliste Ihres Geräts im Azure-Portal

Grundlegendes zu den beiden neuen Modulen

  1. Wählen Sie auf der Registerkarte Module festlegen Ihres Geräts den Namen Ihres Stream Analytics-Moduls aus, um zur Seite IoT Edge-Modul aktualisieren zu gelangen. Hier können Sie die Einstellungen aktualisieren.

    Auf der Registerkarte Einstellungen ist der Image-URI angegeben, der auf ein Azure Stream Analytics-Standardimage verweist. Dieses einzelne Image wird für jedes Stream Analytics-Modul verwendet, das für ein IoT Edge-Gerät bereitgestellt wird.

    Auf der Registerkarte Einstellungen für Modulzwilling ist der JSON-Code angegeben, der die ASA-Eigenschaft (Azure Stream Analytics) ASAJobInfo definiert. Der Wert dieser Eigenschaft verweist auf die Auftragsdefinition in Ihrem Speichercontainer. Mithilfe dieser Eigenschaft wird das Stream Analytics-Image mit Ihren individuellen Auftragsdetails konfiguriert.

    Das Stream Analytics-Modul hat standardmäßig den gleichen Namen wie der Auftrag, auf dem es basiert. Der Modulname kann bei Bedarf auf dieser Seite geändert werden, dies ist jedoch nicht erforderlich.

  2. Wählen Sie Anwenden aus, wenn Sie Änderungen vorgenommen haben, oder Abbrechen, wenn Sie keine Änderungen vorgenommen haben.

Zuweisen von Routen zu Ihren Modulen

  1. Wählen Sie auf der Seite Module für Gerät festlegen:<Ihr Gerätename> die Option Weiter: Routen aus.

  2. Auf der Registerkarte Routen definieren Sie, wie Nachrichten zwischen Modulen und dem IoT Hub übergeben werden. Nachrichten werden mit Name-Wert-Paaren erstellt.

    Fügen Sie die Routennamen und -werte mit den in der folgenden Tabelle gezeigten Paaren hinzu. Ersetzen Sie {moduleName} durch den Namen Ihres Azure Stream Analytics-Moduls. Dieses Modul sollte den gleichen Namen haben, der in der Modulliste Ihres Geräts auf der Seite Module festlegen im Azure-Portal angezeigt wird.

    Screenshot: Name Ihrer Stream Analytics-Module auf Ihrem IoT Edge-Gerät im Azure-Portal.

    Name Wert
    telemetryToCloud FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
    alertsToCloud FROM /messages/modules/{moduleName}/* INTO $upstream
    alertsToReset FROM /messages/modules/{moduleName}/* INTO BrokeredEndpoint("/modules/SimulatedTemperatureSensor/inputs/control")
    telemetryToAsa FROM /messages/modules/SimulatedTemperatureSensor/* INTO BrokeredEndpoint("/modules/{moduleName}/inputs/temperature")

    Die Routen, die Sie hier deklarieren, definieren den Fluss der Daten durch das IoT Edge-Gerät. Die Telemetriedaten von „SimulatedTemperatureSensor“ werden an IoT Hub und an die Eingabe temperature (Temperatur) gesendet, die im Stream Analytics-Auftrag konfiguriert wurde. Die Meldungen der Ausgabe alert (Warnung) werden an IoT Hub und an das SimulatedTemperatureSensor-Modul gesendet, um den Zurücksetzungsbefehl auszulösen.

  3. Klicken Sie auf Weiter: Überprüfen + erstellen.

  4. Auf der Registerkarte Überprüfen + erstellen sehen Sie, wie die im Assistenten angegebenen Informationen in ein JSON-Bereitstellungsmanifest konvertiert werden.

  5. Wenn Sie mit der Überprüfung des Manifests fertig sind, wählen Sie Erstellen aus, um die Einstellung Ihres Moduls abzuschließen.

Anzeigen von Daten

Wechseln Sie nun zu Ihrem IoT Edge-Gerät, um sich die Interaktion zwischen dem Azure Stream Analytics-Modul und dem SimulatedTemperatureSensor-Modul anzusehen.

Hinweis

Wenn Sie einen virtuellen Computer für ein Gerät verwenden, können Sie Azure Cloud Shell verwenden, um direkt auf alle von Azure authentifizierten Dienste zuzugreifen.

  1. Überprüfen Sie, ob alle Module in Docker ausgeführt werden:

    iotedge list  
    
  2. Zeigen Sie alle Systemprotokolle und Metrikdaten an. Ersetzen Sie {moduleName} durch den Namen Ihres Azure Stream Analytics-Moduls:

    iotedge logs -f {moduleName}  
    
  3. Sehen Sie sich anhand der Sensorprotokolle an, wie sich der Zurücksetzungsbefehl auf das SimulatedTemperatureSensor-Modul auswirkt:

    iotedge logs SimulatedTemperatureSensor
    

    Sie können beobachten, wie die Temperatur des Computers allmählich steigt, bis sie 30 Sekunden lang 70 Grad beträgt. Dann löst das Stream Analytics-Modul eine Zurücksetzung aus, und die Computertemperatur fällt zurück auf 21.

    Screenshot: Zurücksetzungsbefehl in Ihrer Ausgabe aus Ihren Modulprotokollen

Bereinigen von Ressourcen

Falls Sie mit dem nächsten empfohlenen Artikel fortfahren möchten, können Sie die erstellten Ressourcen und Konfigurationen beibehalten und wiederverwenden. Sie können auch dasselbe IoT Edge-Gerät als Testgerät weiter nutzen.

Andernfalls können Sie die in diesem Artikel verwendeten lokalen Konfigurationen und die Azure-Ressourcen löschen, um Kosten zu vermeiden.

Löschen von Azure-Ressourcen

Das Löschen von Azure-Ressourcen und -Ressourcengruppen kann nicht rückgängig gemacht werden. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen. Wenn Sie den IoT-Hub in einer bereits vorhandenen Ressourcengruppe erstellt haben, die Ressourcen enthält, die Sie behalten möchten, löschen Sie nicht die Ressourcengruppe, sondern nur die IoT-Hub-Ressource.

So löschen Sie die Ressourcen:

  1. Melden Sie sich beim Azure-Portal an, und wählen Sie anschließend Ressourcengruppen aus.

  2. Wählen Sie den Namen der Ressourcengruppe aus, die Ihre IoT Edge-Testressourcen enthält.

  3. Überprüfen Sie die Liste der Ressourcen, die in Ihrer Ressourcengruppe enthalten sind. Wenn Sie alle löschen möchten, klicken Sie auf Ressourcengruppe löschen. Wenn Sie nur einige Ressourcen löschen möchten, klicken Sie auf die jeweiligen Ressourcen, um sie einzeln zu löschen.

Nächste Schritte

In diesem Tutorial haben Sie einen Azure Streaming Analytics-Auftrag zum Analysieren von Daten konfiguriert, die von ihrem IoT Edge-Gerät stammen. Anschließend haben Sie das Azure Stream Analytics-Modul auf Ihrem IoT Edge-Gerät geladen, um die Daten lokal zu verarbeiten, lokal auf einen Temperaturanstieg zu reagieren und den aggregierten Datenstrom an die Cloud zu senden. Sie können nun die anderen Tutorials bearbeiten, um noch mehr darüber zu erfahren, wie sich mit Azure IoT Edge weitere Lösungen für Ihr Unternehmen erstellen lassen.