Übung: Einrichten der Kommunikation zwischen IoT Hub und IoT Edge
Diese Übung verwendet die Azure CLI in Azure Cloud Shell, um die erforderlichen Befehle auszuführen.
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:
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
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 :
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:


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



