Grundlegendes zu Azure IoT Edge-Modulen

Gilt für:IoT Edge 1.4 checkmark IoT Edge 1.4

Wichtig

IoT Edge Version 1.4 wird unterstützt. Wenn Sie ein früheres Release verwenden, finden Sie weitere Informationen unter Aktualisieren von IoT Edge.

Azure IoT Edge ermöglicht Ihnen die Bereitstellung und Verwaltung von Geschäftslogik im Edge in Form von Modulen. Azure IoT Edge-Module sind die kleinste von IoT Edge verwaltete Recheneinheit und kann 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 Modulinstanz ist die spezifische Recheneinheit, auf der das Modulimage auf einem IoT Edge-Gerät ausgeführt wird. Die Modulinstanz wird von der IoT Edge-Runtime gestartet.
  • Eine Modulidentität ist eine in IoT Hub gespeicherte Information (einschließlich Sicherheitsanmeldeinformationen), die den einzelnen Modulinstanzen zugeordnet wird.
  • Ein Modulzwilling ist ein in IoT Hub gespeichertes JSON-Dokument, das Statusinformationen für eine Modulinstanz enthält – darunter Metadaten, Konfigurationen und Bedingungen.

Modulimages und -instanzen

IoT Edge-Modulimages enthalten Anwendungen, die die Verwaltungs-, Sicherheits- und Kommunikationsfeatures der IoT Edge-Runtime nutzen. Sie können Ihre eigenen Modulimages entwickeln oder eines aus einem unterstützten Azure-Dienst exportieren, beispielsweise aus Azure Stream Analytics. Die Images sind in der Cloud enthalten und können aktualisiert, geändert und in verschiedenen Lösungen bereitgestellt werden. Beispielsweise liegt ein Modul, das eine Fließbandausgabe anhand von Machine Learning prognostiziert, in einem anderen Image vor als ein Modul, das mithilfe von maschinellem Sehen eine Drohne steuert.

Jedes Mal, wenn ein Modulimage auf einem Gerät bereitgestellt und von der IoT Edge-Runtime gestartet wird, wird eine neue Instanz des jeweiligen Moduls erstellt. Zwei Geräte in verschiedenen Teilen der Welt könnten dasselbe Modulimage verwenden. Allerdings würde jedes Gerät über eine eigene Modulinstanz verfügen, wenn das Modul auf dem Gerät gestartet wird.

Diagram - Module images in cloud, module instances on devices

Bei der Implementierung liegen Modulimages als Containerimages in einem Repository vor, und Modulinstanzen sind Container auf Geräten.

Modulidentitäten

Wenn von der IoT Edge-Runtime eine neue Modulinstanz erstellt wird, erhält sie eine entsprechende Modulidentität. Die Modulidentität wird in IoT Hub gespeichert und als Ziel für die Adressierung und Sicherheit für die gesamte Kommunikation (lokal und in der Cloud) dieser Modulinstanz verwendet.

Die einer Modulinstanz zugeordnete Identität hängt von der Identität des Geräts, auf dem die Instanz ausgeführt wird, und von dem Namen ab, den Sie in Ihrer Lösung für das Modul angeben. Wenn Sie mit insight beispielsweise ein Modul benennen, das Azure Stream Analytics verwendet, und dieses auf einem Gerät namens Hannover01 bereitstellen, erstellt die IoT Edge-Runtime 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 dasselbe Image natürlich mehrmals mit verschiedenen Namen bereitstellen.

Diagram - Module identities are unique within devices and across devices

Modulzwillinge

Jede Modulinstanz besitzt außerdem einen entsprechenden Modulzwilling, den Sie zum Konfigurieren der Modulinstanz verwenden können. Die Instanz und der Zwilling werden einander über die Modulidentität zugeordnet.

Ein Modulzwilling ist ein JSON-Dokument, in dem Modulinformationen und Konfigurationseigenschaften gespeichert sind. Dieses Konzept gleicht dem Konzept des Gerätezwillings in IoT Hub. Die Struktur eines Modulzwillings ist identisch mit der eines Gerätezwillings. Die für die Interaktion mit beiden Typen von Zwillingen verwendeten APIs sind ebenfalls 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 können auf unbestimmte Zeit offline ausgeführt werden, nachdem sie mindestens einmal mit IoT Hub synchronisiert wurden. IoT Edge-Geräte können diese Offlinefunktion auch auf andere IoT-Geräte übertragen. Weitere Informationen finden Sie unter Grundlegendes zu erweiterten Offlinefunktionen für IoT Edge-Geräte und -Module sowie nachgeschaltete Geräte.

Nächste Schritte