Bereitstellen einer IoT Edge-fähigen Linux-VM

Abgeschlossen

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 IoT Central-Anwendung verbinden und wie Ihre IoT Edge-Module von 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
  • Verwalten der Kommunikation zwischen nachgeschalteten Geräten und einem IoT Edge-Gerät, zwischen Modulen auf einem IoT Edge-Gerät, zwischen einem IoT Edge-Gerät und der Cloud sowie zwischen IoT Edge-Geräten.

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 echten 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 IoT Central erfasst werden. Ein 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 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 IoT Central-Anwendung herzustellen. In der vorherigen Lerneinheit haben Sie sich beim Hinzufügen eines Geräts zu Ihrer IoT Central-Anwendung die Bereichs-ID, die Geräte-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 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 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 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
      }
    }
  }
}

Bereitstellen von IoT Edge auf einem virtuellen Computer

1.

Wie stellt ein IoT Edge-Gerät eine Verbindung mit IoT Central her?

2.

Von wo lädt ein IoT Edge-Gerät Module herunter?