Übung: Einrichten der Kommunikation zwischen IoT Hub und IoT Edge

Abgeschlossen

Diese Übung verwendet die Azure CLI in Azure Cloud Shell, um die erforderlichen Befehle auszuführen.

Screenshot, der zeigt, wie Sie eine Verbindung mit Azure Cloud Shell herstellen.

Installieren der Azure IoT-Erweiterung

Fügen Sie die Azure IoT-Erweiterung zur Azure Shell-Instanz Azure CLI hinzu.

az extension add --name azure-iot

Hinweis

In diesem Artikel wird die neueste Version der Azure IoT-Erweiterung namens azure-iot verwendet. Die Legacy-Version heißt azure-cli-iot-ext. Sie sollten nur eine Version installiert haben. Um zu überprüfen, welche Erweiterungen installiert sind, führen Sie den Befehl aus az extension list.

Führen Sie az extension remove --name azure-cli-iot-ext aus, um die Legacyversion der Erweiterung zu entfernen.

Führen Sie den Befehl aus az extension add --name azure-iot , um die neue Version der Erweiterung hinzuzufügen.

Erstellen einer Ressourcengruppe

Erstellen Sie eine Ressourcengruppe namens "IoTEdgeResources", indem Sie den folgenden Befehl ausführen:

az group create --name IoTEdgeResources --location eastus2

Die Ausgabe sieht in etwa wie folgt aus:

Screenshot: Erstellung einer Ressourcengruppe

Erstellen eines IoT-Hubs

Der folgende Code erstellt einen kostenlosen F1-Stufe Hub in der Ressourcengruppe "IoTEdgeResources". Ersetzen Sie {hub_name} durch einen eindeutigen Namen für Ihren IoT-Hub.

az iot hub create --resource-group IoTEdgeResources --name {hub_name} --sku F1 --partition-count 2

Hinweis

Wenn eine Fehlermeldung angezeigt wird, da bereits ein kostenloser Hub in Ihrem Abonnement vorhanden ist, ändern Sie die SKU in S1. Jedes Abonnement kann nur über einen kostenlosen IoT Hub verfügen. Wenn Sie eine Fehlermeldung erhalten, dass der IoT-Hubname nicht verfügbar ist, bedeutet dies, dass eine andere Person bereits über einen Hub mit diesem Namen verfügt.

Registrieren eines IoT Edge-Geräts

Führen Sie in Azure Cloud Shell die folgenden Schritte aus, um ein Gerät namens "myEdgeDevice" in Ihrem Hub zu erstellen.

Erstellen einer Geräteidentität

IoT Edge-Geräte verhalten sich und werden anders verwaltet als typische IoT-Geräte. Verwenden Sie das --edge-enabled Flag, um diese Identität als IoT Edge-Gerät zu deklarieren.

Von Bedeutung

Wenn bei "iothubowner-Richtlinienschlüsseln" ein Fehler angezeigt wird, stellen Sie sicher, dass Ihre Cloud Shell die neueste Version der azure-iot Erweiterung ausführt.

Mit dem folgenden Befehl wird die Geräteidentität erstellt:

az iot hub device-identity create --hub-name {hub_name} --device-id myEdgeDevice --edge-enabled

Abbildung zum Erstellen der Geräteidentität.

Verbindungszeichenfolge abrufen

Verwenden Sie den folgenden Befehl, um die Verbindungszeichenfolge für Ihr Gerät abzurufen, die Ihr physisches Gerät mit seiner Identität im IoT Hub verknüpft:

az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name} --output table

Die Ausgabe sieht in etwa wie folgt aus:

HostName={YourIoTHubName}.azure-devices.net;DeviceId=MyNodeDevice;SharedAccessKey={YourSharedAccessKey}

Kopieren Sie den Wert des Schlüssels connectionString aus der JSON-Ausgabe, und speichern Sie ihn. Dieser Wert ist die Geräteverbindungszeichenfolge, die zum Konfigurieren der IoT Edge-Laufzeit im nächsten Abschnitt verwendet wird.

Bereitstellen des IoT Edge-Geräts

Verwenden Sie diesen CLI-Befehl, um Ihr IoT Edge-Gerät basierend auf der vorgefertigten Iotedge-vm-deploy-Vorlage zu erstellen. Kopieren Sie den Befehl in einen Text-Editor, ersetzen Sie den Platzhaltertext durch Ihre Informationen, und fügen Sie ihn dann in Ihr Bash- oder Cloud Shell-Fenster ein:

az deployment group create \
--resource-group IoTEdgeResources \
--template-uri "https://aka.ms/iotedge-vm-deploy" \
--parameters dnsLabelPrefix='<REPLACE_WITH_VM_NAME>' \
--parameters adminUsername='azureuser' \
--parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name
<REPLACE_WITH_HUB_NAME> -o tsv) \
--parameters authenticationType='password' \
--parameters adminPasswordOrKey="<REPLACE_WITH_PASSWORD>"

Stellen Sie sicher, dass Ihr Kennwort (adminPasswordOrKey) mindestens 12 Zeichen lang ist und drei der folgenden Zeichen enthält: Kleinbuchstaben, Großbuchstaben, Ziffern und Sonderzeichen.

Es kann einige Minuten dauern, bis der neue virtuelle Computer erstellt und gestartet wird. Nachdem die Bereitstellung abgeschlossen ist, erhalten Sie JSON-formatierte Ausgabe in der CLI, die die SSH-Informationen enthält, um eine Verbindung mit der virtuellen Maschine herzustellen. Kopieren Sie den Wert des öffentlichen SSH-Eintrags im Ausgabeabschnitt :

Screenshot mit öffentlichem SSH.

Anzeigen des Status der IoT Edge-Runtime

Verwenden Sie diesen Befehl, um eine Verbindung mit Ihrem virtuellen Computer herzustellen. Ersetzen Sie azureuser , wenn Sie während der VM-Bereitstellung einen anderen Benutzernamen verwendet haben. Ersetzen Sie <DNS-name> durch den DNS-Namen Ihres Computers.

ssh <admin-username>@<DNS-name>

Überprüfen, ob das IoT Edge-Gerät konfiguriert ist

Verwenden Sie iotedge Befehle, um zu überprüfen, ob der IoT Edge-Sicherheitsdaemon als Systemdienst ausgeführt wird.

Von Bedeutung

Sie benötigen erhöhte Rechte zum Ausführen von iotedge-Befehlen.

Führen Sie den folgenden Befehl aus, um den Status des IoT Edge-Geräts zu überprüfen:

sudo systemctl status iotedge

Die resultierende Ausgabe sollte in etwa wie folgt aussehen:

Screenshot des Status des Azure IoT Edge-Daemons.

Screenshot der Liste der Module, die auf dem virtuellen Gerät ausgeführt werden.

Ihr IoT Edge-Gerät ist jetzt konfiguriert. Es kann nun zum Ausführen von in der Cloud bereitgestellten Modulen verwendet werden.

Um Probleme mit dem Dienst zu beheben, greifen Sie auf die Dienstprotokolle zu.

journalctl -u iotedge

Zeigen Sie alle Module an, die auf Ihrem IoT Edge-Gerät ausgeführt werden. Da der Dienst zum ersten Mal gestartet wurde, wird nur das EdgeAgent-Modul ausgeführt. Das Modul edgeAgent wird standardmäßig ausgeführt und unterstützt Sie beim Installieren und Starten von zusätzlichen Modulen, die Sie auf Ihrem Gerät bereitstellen.

sudo iotedge list