Schnellstart: Senden von Telemetriedaten von einem Gerät an einen IoT-Hub und Durchführen der Überwachung per Azure CLI

Azure IoT Hub wurde entwickelt, um große Mengen an Telemetriedaten von IoT-Geräten für die Speicherung oder Verarbeitung in der Cloud zu sammeln. In diesem Schnellstart ohne Code verwenden Sie die Azure CLI zum Erstellen eines IoT-Hubs und eines simulierten Geräts. Sie senden Gerätetelemetrie an den Hub und senden außerdem Nachrichten, rufen Methoden auf und aktualisieren Eigenschaften am Gerät. Sie verwenden das Azure-Portal, um Gerätemetriken zu visualisieren.

Dieser Artikel enthält einen grundlegenden Workflow für Entwickler mithilfe der Azure CLI für die Interaktion mit einer IoT Hub Anwendung.

Voraussetzungen

  • Ein Azure-Abonnement. Wenn Sie noch keins haben, können Sie eine kostenlos erstellen , bevor Sie beginnen.
  • Die Azure CLI. Sie können alle Befehle in dieser Schnellstartanleitung mithilfe von Azure Cloud Shell, einer interaktiven CLI-Shell ausführen, die in Ihrem Browser oder in einer App wie Windows-Terminal ausgeführt wird. Wenn Sie Cloud Shell verwenden, müssen Sie nichts installieren. Wenn Sie die CLI lieber lokal nutzen möchten, müssen Sie für diesen Schnellstart mindestens Version 2.36 der Azure CLI verwenden. Führen Sie az --version aus, um die Version zu ermitteln. Informationen zum Installieren oder Aktualisieren finden Sie unter Installieren des Azure CLI.

Melden Sie sich auf dem Azure-Portal an.

Melden Sie sich beim Azure-Portal an.

Unabhängig davon, ob Sie die CLI lokal oder in Cloud Shell ausführen, lassen Sie das Portal in Ihrem Browser geöffnet. Es wird im weiteren Verlauf der Schnellstartanleitung noch benötigt.

Cloud Shell öffnen

In diesem Abschnitt öffnen Sie eine Instanz von Cloud Shell. Falls Sie die CLI lokal nutzen, können Sie zum Abschnitt Vorbereiten von zwei CLI-Sitzungen springen.

  1. Wählen Sie Cloud Shell auf der Menüleiste oben rechts im Azure-Portal aus.

    Screenshot, der die Cloud Shell-Schaltfläche im Azure-Portal zeigt.

    Wenn Sie Cloud Shell zum ersten Mal verwenden, werden Sie aufgefordert, Speicher zu erstellen, der für die Verwendung Cloud Shell erforderlich ist. Wählen Sie ein Abonnement aus, um ein Speicherkonto und eine Azure Files-Freigabe zu erstellen.

  2. Wählen Sie Ihre bevorzugte CLI-Umgebung in der Dropdownliste " Umgebung auswählen " aus. Diese Schnellstartanleitung verwendet die Bash-Umgebung. Sie können auch die PowerShell-Umgebung verwenden.

    Screenshot, der die Auswahl der CLI-Umgebung zeigt.

    Einige Befehle erfordern unterschiedliche Syntax oder Formatierung in den Bash- und PowerShell-Umgebungen. Weitere Informationen finden Sie unter Tipps zur erfolgreichen Verwendung der Azure CLI.

Vorbereiten von zwei CLI-Sitzungen

Als Nächstes bereiten Sie zwei Azure CLI-Sitzungen vor. Wenn Sie Cloud Shell verwenden, führen Sie diese Sitzungen in separaten Cloud Shell Registerkarten aus. Wenn Sie einen lokalen CLI-Client verwenden, führen Sie separate CLI-Instanzen aus. Verwenden Sie die separaten CLI-Sitzungen für die folgenden Aufgaben:

  • Die erste Sitzung simuliert ein IoT-Gerät, das mit Ihrem IoT-Hub kommuniziert.
  • Die zweite Sitzung überwacht entweder das Gerät in der ersten Sitzung oder sendet Nachrichten, Befehle und Eigenschaftsupdates.

Wählen Sie zum Ausführen eines Befehls die Option Kopieren aus, um einen Codeblock aus dieser Schnellstartanleitung zu kopieren und in Ihre Shell-Sitzung einzufügen. Anschließend können Sie den Befehl dann ausführen.

Um die Azure CLI zu verwenden, müssen Sie bei Ihrem Azure Konto angemeldet sein. Die gesamte Kommunikation zwischen Ihrer Azure CLI-Shell-Sitzung und Ihrem IoT-Hub wird authentifiziert und verschlüsselt. Daher benötigt dieser Schnellstart keine zusätzliche Authentifizierungsmethode, die Sie bei einem echten Gerät verwenden würden, z. B. eine Verbindungszeichenfolge.

  • Führen Sie in der ersten CLI-Sitzung den Befehl az extension add aus. Mit dem Befehl wird Ihrer CLI-Shell die Microsoft Azure IoT-Erweiterung für Azure CLI hinzugefügt. Die IoT-Erweiterung fügt IoT Hub-, Azure IoT Edge- und IoT-Gerätebereitstellungsdienstbefehle hinzu, die für die Azure CLI spezifisch sind.

    az extension add --name azure-iot
    

    Nachdem Sie die Azure IoT-Erweiterung installiert haben, müssen Sie sie in keiner Cloud Shell Sitzung erneut installieren.

    Hinweis

    In diesem Artikel wird die neueste Version der Azure IoT-Erweiterung namens azure-iot verwendet. Die Legacyversion heißt azure-cli-iot-ext. Sie sollten jeweils nur eine Version installiert haben. Sie können den Befehl az extension list verwenden, um die derzeit installierten Erweiterungen zu überprüfen.

    Verwenden Sie az extension remove --name azure-cli-iot-ext, um die Legacy-Version der Erweiterung zu entfernen.

    Verwenden Sie az extension add --name azure-iot, um die neue Version der Erweiterung hinzuzufügen.

    Um zu sehen, welche Erweiterungen derzeit installiert sind, verwenden Sie az extension list.

  • Öffnen Sie die zweite CLI-Sitzung. Wenn Sie Cloud Shell in einem Browser verwenden, verwenden Sie Open new session. Wenn Sie die CLI lokal verwenden, öffnen Sie eine zweite CLI-Instanz.

    Screenshot zum Öffnen einer neuen Cloud Shell session.

Erstellen eines IoT-Hubs

In diesem Abschnitt verwenden Sie die Azure CLI zum Erstellen einer Ressourcengruppe und eines IoT-Hubs. Eine Azure-Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden. Ein IoT-Hub fungiert als zentraler Nachrichtenhub für bidirektionale Kommunikation zwischen Ihrer IoT-Anwendung und den Geräten.

  1. Führen Sie in der ersten CLI-Sitzung den Befehl az group create aus, um eine Ressourcengruppe zu erstellen. Mit dem folgenden Befehl wird eine Ressourcengruppe mit dem Namen MyResourceGroup am Standort eastus erstellt.

    az group create --name MyResourceGroup --location eastus
    
  2. Führen Sie in der ersten CLI-Sitzung den Befehl Az PowerShell module iot hub create aus, um einen IoT-Hub zu erstellen. Das Erstellen eines IoT-Hubs dauert einige Minuten.

    Ersetzen Sie den YourIotHubName Platzhalter und die umgebenden geschweiften Klammern im folgenden Befehl durch den Namen, den Sie für Ihren IoT-Hub ausgewählt haben. Der Name eines IoT-Hubs muss in Azure global eindeutig sein. Verwenden Sie im weiteren Verlauf dieser Schnellstartanleitung den Namen des IoT-Hubs für alle Vorkommen dieses Platzhalters.

    az iot hub create --resource-group MyResourceGroup --name {YourIoTHubName}
    

Erstellen und Überwachen eines Geräts

In diesem Abschnitt erstellen Sie in der ersten CLI-Sitzung ein simuliertes Gerät. Mit dem simulierten Gerät werden Gerätetelemetriedaten an Ihren IoT-Hub gesendet. In der zweiten CLI-Sitzung überwachen Sie Ereignisse und Telemetriedaten.

Erstellen und starten Sie ein simuliertes Gerät wie folgt:

  1. Führen Sie In der ersten CLI-Sitzung den Befehl az iot hub device-identity create aus. Dieser Befehl erstellt die Identität des simulierten Geräts.

    • YourIotHubName. Ersetzen Sie diesen Platzhalter im folgenden Code durch den Namen, den Sie für Ihren IoT-Hub ausgewählt haben.
    • simDevice. Sie können diesen Namen im weiteren Verlauf dieser Schnellstartanleitung direkt für das simulierte Gerät verwenden. Optional können Sie auch einen anderen Namen nutzen.
    az iot hub device-identity create -d simDevice -n {YourIoTHubName} 
    
  2. Führen Sie in der ersten CLI-Sitzung den Befehl az iot device simulate aus. Dieser Befehl startet das simulierte Gerät. Das Gerät sendet Telemetriedaten an Ihren IoT-Hub und empfängt im Gegenzug Nachrichten.

    Ersetzen Sie den YourIotHubName Platzhalter im folgenden Code durch den Namen, den Sie für Ihren IoT-Hub ausgewählt haben.

    az iot device simulate -d simDevice -n {YourIoTHubName}
    

Überwachen Sie ein Gerät wie folgt:

  1. Führen Sie in der zweiten CLI-Sitzung den Befehl az iot hub monitor-events aus. Dieser Befehl überwacht kontinuierlich das simulierte Gerät. Die Ausgabe zeigt Telemetriedaten, z. B. Ereignisse und Änderungen des Eigenschaftsstatus, die das simulierte Gerät an den IoT-Hub sendet.

    Ersetzen Sie den YourIotHubName Platzhalter im folgenden Code durch den Namen, den Sie für Ihren IoT-Hub ausgewählt haben.

    az iot hub monitor-events --output table -p all -n {YourIoTHubName}
    

    Screenshot der Überwachung von Ereignissen auf einem simulierten Gerät.

  2. Nachdem Sie das simulierte Gerät in der zweiten CLI-Sitzung überwacht haben, wählen Sie STRG+C aus, um die Überwachung zu beenden. Lassen Sie die zweite CLI-Sitzung zur Verwendung in späteren Schritten geöffnet.

Verwenden der CLI zum Senden einer Nachricht

In diesem Abschnitt senden Sie eine Nachricht an das simulierte Gerät.

  1. Vergewissern Sie sich in der ersten CLI-Sitzung, dass das simulierte Gerät noch ausgeführt wird. Wenn das Gerät beendet wurde, führen Sie den folgenden Befehl aus, um es neu zu starten.

    Ersetzen Sie den YourIotHubName Platzhalter im folgenden Code durch den Namen, den Sie für Ihren IoT-Hub ausgewählt haben.

    az iot device simulate -d simDevice -n {YourIoTHubName}
    
  2. Führen Sie in der zweiten CLI-Sitzung den Befehl az iot device c2d-message send aus. Dieser Befehl sendet eine C2D-Nachricht (Cloud-To-Device) von Ihrem IoT-Hub an das simulierte Gerät. Die Nachricht enthält eine Zeichenfolge und zwei Schlüssel-Wert-Paare.

    Ersetzen Sie den YourIotHubName Platzhalter im folgenden Code durch den Namen, den Sie für Ihren IoT-Hub ausgewählt haben.

    az iot device c2d-message send -d simDevice --data "Hello World" --props "key0=value0;key1=value1" -n {YourIoTHubName}
    

    Optionalerweise können Sie Cloud-zu-Gerät-Nachrichten über das Azure-Portal senden. Um Nachrichten über das Azure-Portal zu senden, navigieren Sie zum Overview Seite für Ihren IoT Hub, wählen Sie IoT-Geräte, wählen Sie das simulierte Gerät aus, und wählen Sie Nachricht an Gerät aus.

  3. Vergewissern Sie sich in der ersten CLI-Sitzung, dass das simulierte die Nachricht empfangen hat.

    Screenshot eines simulierten Geräts, das eine Nachricht empfängt.

Verwenden der CLI zum Aufrufen einer Gerätemethode

In diesem Abschnitt rufen Sie eine direkte Methode auf dem simulierten Gerät auf.

  1. Vergewissern Sie sich wie zuvor, dass das simulierte Gerät in der ersten CLI-Sitzung ausgeführt wird. Wenn das nicht zutrifft, starten Sie es neu.

  2. Führen Sie in der zweiten CLI-Sitzung den Befehl az iot hub invoke-device-method aus. In diesem Beispiel gibt es keine bereits vorhandene Methode für das Gerät. Der Befehl ruft einen Beispielmethodennamen auf dem simulierten Gerät auf und gibt eine Nutzlast zurück.

    Ersetzen Sie den YourIotHubName Platzhalter im folgenden Code durch den Namen, den Sie für Ihren IoT-Hub ausgewählt haben.

    az iot hub invoke-device-method --mn MySampleMethod -d simDevice -n {YourIoTHubName}
    
  3. Vergewissern Sie sich in der ersten CLI-Sitzung, dass die Ausgabe den Methodenaufruf anzeigt.

    Screenshot eines simulierten Geräts, das die Ausgabe anzeigt, nachdem eine Methode aufgerufen wurde.

Verwenden der CLI zum Aktualisieren von Geräteeigenschaften

In diesem Abschnitt aktualisieren Sie den Zustand des simulierten Geräts durch Festlegen von Eigenschaftswerten.

  1. Vergewissern Sie sich wie zuvor, dass das simulierte Gerät in der ersten CLI-Sitzung ausgeführt wird. Wenn das nicht zutrifft, starten Sie es neu.

  2. Führen Sie in der zweiten CLI-Sitzung den Befehl az iot hub device-twin update aus. Dieser Befehl aktualisiert die Eigenschaften auf dem IoT-Hub-Gerätezwilling, der Ihrem simulierten Gerät entspricht, auf den gewünschten Zustand. In diesem Fall legt der Befehl Beispieleigenschaften für die Temperaturbedingungen fest.

    Wichtig

    Wenn Sie PowerShell in der CLI-Shell verwenden, verwenden Sie die PowerShell-Version des Befehls im folgenden Code. PowerShell erfordert, dass Sie die Zeichen in den JSON-Nutzdaten mit Escapezeichen versehen.

    Ersetzen Sie den YourIotHubName Platzhalter im folgenden Code durch den Namen, den Sie für Ihren IoT-Hub ausgewählt haben.

    az iot hub device-twin update -d simDevice --desired '{"conditions":{"temperature":{"warning":98, "critical":107}}}' -n {YourIoTHubName}
    
    az iot hub device-twin update -d simDevice --desired '{\"conditions\":{\"temperature\":{\"warning\":98, \"critical\":107}}}' -n {YourIoTHubName}
    
  3. Vergewissern Sie sich in der ersten CLI-Sitzung, dass das simulierte Gerät das Eigenschaftenupdate ausgibt.

    Screenshot, der zeigt, wie man Eigenschaften auf einem Gerät aktualisiert.

  4. Führen Sie in der zweiten CLI-Sitzung den Befehl az iot hub device-twin show aus. Dieser Befehl meldet Änderungen an den Geräteeigenschaften.

    Ersetzen Sie den YourIotHubName Platzhalter im folgenden Code durch den Namen, den Sie für Ihren IoT-Hub ausgewählt haben.

    az iot hub device-twin show -d simDevice --query properties.reported -n {YourIoTHubName}
    

    Screenshot: Aktualisierte Eigenschaften auf einem Gerätezwilling.

Anzeigen von Nachrichtenmetriken im Portal

Sie können alle Aspekte Ihres IoT-Hubs und Ihrer Geräte im Azure Portal verwalten. In einer typischen IoT-Hub-Anwendung, mit der Telemetriedaten von Geräten erfasst werden, können Sie bei Bedarf Geräte überwachen oder Metriken der Gerätetelemetrie anzeigen.

Visualisieren Sie Nachrichtenmetriken im Azure-Portal wie folgt:

  1. Wählen Sie im Menü "Dienst" im Portal "Alle Ressourcen" aus. Auf dieser Registerkarte werden alle Ressourcen in Ihrem Abonnement aufgelistet, einschließlich des von Ihnen erstellten IoT-Hubs.

  2. Wählen Sie den Link auf dem von Ihnen erstellten IoT-Hub aus. Das Portal zeigt die Übersichtsseite für den Hub an.

  3. Wählen Sie "Metriken " im linken Bereich Ihres IoT-Hubs aus.

    Screenshot mit IoT Hub Messagingmetriken.

  4. Geben Sie im Feld Bereich den Namen Ihres IoT Hubs ein.

  5. Wählen Sie im Feld Metriknamespace die IoT Hub-Standardmetriken aus.

  6. Wählen Sie im Feld Metrik die Option Gesamtzahl verwendeter Nachrichten aus.

  7. Bewegen Sie den Mauszeiger auf den Bereich der Zeitachse, in dem das Gerät Nachrichten gesendet hat. Unten links in der Zeitachse wird die Gesamtzahl der Nachrichten für den entsprechenden Zeitpunkt angezeigt.

    Screenshot mit einer Ansicht der IoT Hub Metrics.

  8. Optional können Sie die Dropdownliste " Metrik " verwenden, um andere Metriken auf Ihrem simulierten Gerät anzuzeigen. Beispiel: Siehe C2d-Nachrichtenlieferungen abgeschlossen oder Geräte insgesamt (Vorschau).

Bereinigen von Ressourcen

Wenn Sie die Azure Ressourcen, die Sie in dieser Schnellstartanleitung erstellt haben, nicht mehr benötigen, können Sie die Azure CLI verwenden, um sie zu löschen.

Wenn Sie mit dem nächsten empfohlenen Artikel fortfahren, können Sie die Ressourcen beibehalten, die Sie bereits erstellt haben, und sie wiederverwenden.

Wichtig

Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Die Ressourcengruppe und alle darin enthaltenen Ressourcen werden unwiderruflich gelöscht. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen.

So löschen Sie eine Ressourcengruppe anhand des Namens:

  1. Führen Sie den Befehl az group delete aus. Mit diesem Befehl werden die Ressourcengruppe, der IoT-Hub und die geräteregistrierung entfernt, die Sie erstellt haben.

    az group delete --name MyResourceGroup
    
  2. Führen Sie den Befehl "az group list " aus, um zu bestätigen, dass die Ressourcengruppe gelöscht wurde.

    az group list
    

Zusammenfassung

In diesem Schnellstart haben Sie mithilfe der Azure CLI einen IoT-Hub und ein simuliertes Gerät erstellt, Telemetriedaten gesendet und überwacht, eine Methode aufgerufen, die gewünschten Eigenschaften festgelegt und Ressourcen bereinigt. Sie haben das Azure-Portal genutzt, um Nachrichtenmetriken auf Ihrem Gerät zu visualisieren.

Wenn Sie ein Geräteentwickler sind, besteht der vorgeschlagene nächste Schritt darin, die Telemetrieschnellstartanleitung zu sehen, die das Azure IoT Device SDK für C verwendet. Optional finden Sie einen der verfügbaren IoT Hub Schnellstartartikel zu Telemetrie in Ihrer bevorzugten Sprache oder dem SDK.

Um zu erfahren, wie Sie das simulierte Gerät über eine Back-End-Anwendung steuern, fahren Sie mit der nächsten Schnellstartanleitung fort.

Nächster Schritt