Bereitstellen einer IoT Edge-fähigen Linux-VM
Zum Testen Ihrer IoT Edge-Konfiguration müssen Sie die IoT Edge-Runtime auf einem virtuellen Computer (VM) bereitstellen.
Bevor Sie echte IoT Edge-Geräte in Ihren Filialen bereitstellen, sollten Sie sich vergewissern, dass die Geräte wie erwartet funktionieren. Zum Testen Ihres Szenarios planen Sie die Bereitstellung der IoT Edge-Runtime auf einem virtuellen Azure-Computer und stellen Ihre IoT Edge-Module dann auf demselben virtuellen Computer bereit.
Hier werden einige wichtige Konzepte von IoT Edge beschrieben, und Sie erfahren, wie Sie ein IoT Edge-Gerät mit einer Azure IoT Central-Anwendung verbinden und wie Ihre IoT Edge-Module von Azure IoT Central unter der IoT Edge-Runtime bereitgestellt werden.
Was ist die IoT Edge-Runtime?
Mit der Azure IoT Edge-Laufzeit wird die benutzerdefinierte Logik und Cloudlogik auf IoT Edge-Geräten aktiviert. Die Runtime befindet sich auf dem IoT Edge-Gerät und ist für die Durchführung von Verwaltungs- und Kommunikationsvorgängen bestimmt. Die Runtime übernimmt die folgenden Aufgaben:
Installieren und Aktualisieren von Workloads auf dem Gerät
Aufrechterhalten von Azure IoT Edge-Sicherheitsstandards auf dem Gerät
Sicherstellen, dass die IoT Edge-Module immer ausgeführt werden
Melden der Modulintegrität an die Cloud für die Remoteüberwachung
Verwaltet die Kommunikation zwischen:
- Nachgeschalteten Geräten und einem IoT Edge-Gerät
- Modulen auf einem IoT Edge-Gerät
- Einem IoT Edge-Gerät und der Cloud
- IoT Edge-Geräte
Was sind IoT Edge-Module?
IoT Edge-Module sind Ausführungseinheiten, die Ihre Geschäftslogik am Enge ausführen. Module werden als Docker-kompatible Container implementiert. Mehrere Module können so konfiguriert werden, dass sie miteinander kommunizieren und eine Pipeline für die Datenverarbeitung bilden. Sie können benutzerdefinierte Module entwickeln oder bestimmte Azure-Dienste in Modulen verpacken, die offline und im Edge-Bereich Erkenntnisse liefern. Da die Module in Docker-Containern ausgeführt werden, weisen sie das gleiche Verhalten auf. Dies gilt unabhängig davon, ob sie auf einer VM oder auf einem physischen Gerät installiert sind.
In der nächsten Lerneinheit installieren Sie die IoT Edge-Runtime und stellen ein benutzerdefiniertes Modul bereit, mit dem Umgebungsdaten zum Senden an Azure IoT Central erfasst werden. Ein Azure IoT Central-Operator kann dann die Umgebungsbedingungen in Ihren Filialen überwachen, indem er die Telemetriedaten in den Dashboards der Anwendung anzeigt.
Wie stellt ein IoT Edge-Gerät eine Verbindung mit Azure IoT Central her?
Wie auch bei anderen Geräten wird für IoT Edge-Geräte der IoT Hub Device Provisioning Service (DPS) genutzt, um eine Verbindung mit Ihrer Azure IoT Central-Anwendung herzustellen. In der vorherigen Lerneinheit haben Sie sich beim Hinzufügen eines Geräts zu Ihrer Azure IoT Central-Anwendung die Bereichs-ID und den Geräteschlüssel notiert. Sie fügen diese Werte der IoT Edge-Konfigurationsdatei auf dem IoT Edge-Gerät hinzu. Der relevante Abschnitt dieser TOML-Datei sieht wie unten angegeben aus. registration_id
ist die Geräte-ID:
[provisioning]
source = "dps"
global_endpoint = "https://global.azure-devices-provisioning.net"
id_scope = "YOUR_ID_SCOPE"
[provisioning.attestation]
method = "symmetric_key"
registration_id = "YOUR_DEVICE_ID"
symmetric_key = { value = "YOUR_DEVICE_KEY" }
In der nächsten Lerneinheit wird mit dem Bereitstellungsskript, das Sie für das IoT Edge-Gerät verwenden, die Konfigurationsdatei für Sie bearbeitet.
Wie werden Module von Azure IoT Central unter einer IoT Edge-Runtime bereitgestellt?
In der vorherigen Lerneinheit haben Sie beim Erstellen der Gerätevorlage für den Umgebungssensor ein Bereitstellungsmanifest in die Vorlage hochgeladen. Wenn die IoT Edge-Runtime eine Verbindung mit Ihrer Azure IoT Central-Anwendung herstellt, lädt sie das Bereitstellungsmanifest herunter. Die Runtime nutzt die im Bereitstellungsmanifest enthaltenen Informationen, um zu bestimmen, welche Module installiert und wie sie konfiguriert werden sollen. Module werden aus einer Containerregistrierung heruntergeladen, z. B. Azure Container Registry oder Docker Hub.
Mit dem von Ihnen verwendeten Bereitstellungsmanifest werden die beiden erforderlichen Systemmodule edgeAgent
und edgeHub
und das benutzerdefinierte Modul SimulatedTemperatureSensor
installiert. Dieses benutzerdefinierte Modul sendet Umgebungs- und Computertelemetriedaten an Azure IoT Central und verfügt über die beiden Eigenschaften SendData und SendInterval, die ein Operator zum Konfigurieren des Moduls verwenden kann:
{
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"schemaVersion": "1.0",
"runtime": {
"type": "docker",
"settings": {
"minDockerVersion": "v1.25",
"loggingOptions": "",
"registryCredentials": {}
}
},
"systemModules": {
"edgeAgent": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.4",
"createOptions": "{}"
}
},
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.4",
"createOptions": "{}"
}
}
},
"modules": {
"SimulatedTemperatureSensor": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.4.6",
"createOptions": "{}"
}
}
}
}
},
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.0",
"routes": {
"route": "FROM /* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
},
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 10
}
}
}
}