Freigeben über


Grundlegendes zu Azure IoT Edge Modulen

Gilt für:IoT Edge 1,5 Häkchen IoT Edge 1,5

Wichtig

IoT Edge 1.5 LTS ist die unterstützte Version. IoT Edge 1.4 LTS erreichte am 12. November 2024 das Ende des Lebens. Wenn Sie eine frühere Version verwenden, lesen Sie Update IoT Edge.

mit Azure IoT Edge können Sie Geschäftslogik auf Edgegeräten mithilfe von module bereitstellen und verwalten. Azure IoT Edge Module sind die kleinste Berechnungseinheit, die von IoT Edge verwaltet wird. Sie können Azure Dienste wie Azure Stream Analytics oder ihren eigenen lösungsspezifischen Code enthalten. Wenn Sie verstehen möchten, wie Module entwickelt, bereitgestellt und verwaltet werden, betrachten Sie die vier konzeptionellen Elemente eines Moduls:

  • Ein Modulimage ist ein Paket mit der Software, die ein Modul definiert.
  • Eine module-Instanz ist die spezifische Berechnungseinheit, die das Modulimage auf einem IoT Edge Gerät ausführt. Die IoT Edge Laufzeit startet die Modulinstanz.
  • Eine module-Identität ist eine Informationseinheit, einschließlich Sicherheitsanmeldeinformationen, die IoT Hub speichert und jeder Modulinstanz zugeordnet wird.
  • Ein module twin ist ein JSON-Dokument, das IoT Hub speichert und Zustandsinformationen für eine Modulinstanz enthält, einschließlich Metadaten, Konfigurationen und Bedingungen.

Modulbilder und Instanzen

IoT Edge Modulabbilder enthalten Anwendungen, die die Funktionen für Verwaltung, Sicherheit und Kommunikation der IoT Edge-Laufzeitumgebung nutzen. Sie können eigene Modulimages entwickeln oder aus einem unterstützten Azure-Dienst exportieren, z. B. Azure Stream Analytics. Sie verwalten Bilder in der Cloud. Sie können sie in verschiedenen Lösungen aktualisieren, ändern und bereitstellen. Beispielsweise ist ein Modul, das maschinelles Lernen verwendet, um die Produktion von Produktionslinien vorherzusagen, ein separates Bild von einem Modul, das Computervision verwendet, um eine Drohne zu steuern.

Jedes Mal, wenn die IoT Edge Laufzeit ein Modulimage auf einem Gerät bereitstellt und startet, wird eine neue Instanz dieses Moduls erstellt. Zwei Geräte in verschiedenen Teilen der Welt können dasselbe Modulbild verwenden. Jedes Gerät verfügt jedoch über eine eigene Modulinstanz, wenn das Modul auf dem Gerät gestartet wird.

Diagramm: Modulimages in der Cloud, Modulinstanzen auf Geräten

In der Implementierung sind Modulimages als Containerimages in einem Repository vorhanden, und Modulinstanzen sind Container auf Geräten.

Modulidentitäten

Wenn die IoT Edge Laufzeit eine neue Modulinstanz erstellt, weist sie eine entsprechende Modulidentität zu. IoT Hub speichert die Modulidentität, die als Adressierungs- und Sicherheitsbereich für alle lokalen und Cloudkommunikationen für die Modulinstanz dient.

Die Identität der Modulinstanz hängt von der Identität des Geräts und dem Namen ab, den Sie dem Modul in Ihrer Lösung zuweisen. Wenn Sie beispielsweise ein Modul insight benennen und auf einem Gerät namens Hannover01 bereitstellen, erstellt die IoT Edge Laufzeit eine entsprechende Modulidentität namens /devices/Hannover01/modules/insight.

In Szenarien, in denen Sie ein Modulimage mehrmals auf demselben Gerät bereitstellen müssen, können Sie es mit unterschiedlichen Namen bereitstellen.

Diagramm: Modulidentitäten sind in Geräten und geräteübergreifend eindeutig

Modulzwillinge

Jede Modulinstanz verfügt über einen Modulzwilling, den Sie zum Konfigurieren verwenden. Die Modulidentität verknüpft die Instanz und den Zwilling.

Ein Modulzwilling ist ein JSON-Dokument, in dem Modulinformationen und Konfigurationseigenschaften gespeichert sind. Dieses Konzept paralleliert das device twin Konzept von IoT Hub. Die Struktur eines Modul-Zwillings ist identisch mit den Geräte-Twins. Die APIs für die Interaktion mit beiden Arten von Zwillingen sind identisch. Der einzige Unterschied zwischen den beiden ist die zum Instanziieren des Client-SDK verwendete Identität.

// Create a ModuleClient object. This ModuleClient will act on behalf of a
// module since it is created with a module's connection string instead
// of a device connection string.
ModuleClient client = new ModuleClient.CreateFromEnvironmentAsync(settings);
await client.OpenAsync();

// Get the module twin
Twin twin = await client.GetTwinAsync();

Offlinefunktionen

Azure IoT Edge-Module arbeiten nach einmaliger Synchronisierung mit IoT Hub unbegrenzt offline. IoT Edge Geräte können diese Offlinefunktion auch auf andere IoT-Geräte erweitern. Weitere Informationen finden Sie unter Verstehen Sie erweiterte Offline-Fähigkeiten für IoT-Edge-Geräte, Module und nachgelagerte Geräte.

Nächste Schritte