Eigenschaften der Modulzwillinge von IoT Edge-Agent und IoT Edge-Hub
Gilt für: 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.
Der IoT Edge-Agent und der IoT Edge-Hub sind die beiden Module, aus denen sich die IoT Edge-Runtime zusammensetzt. Weitere Informationen zu den Zuständigkeiten der einzelnen Laufzeitmodule finden Sie unter Grundlegendes zur Azure IoT Edge-Runtime und ihrer Architektur.
Dieser Artikel enthält die gewünschten Eigenschaften und gemeldeten Eigenschaften der Laufzeitmodulzwillinge. Weitere Informationen zum Bereitstellen von Modulen auf IoT Edge-Geräten finden Sie unter Informationen zum Bereitstellen von Modulen und Einrichten von Routen in IoT Edge.
Ein Modulzwilling enthält:
Gewünschte Eigenschaften Das Lösungs-Back-End kann gewünschte Eigenschaften festlegen, die vom Modul gelesen werden können. Das Modul kann auch Benachrichtigungen über Änderungen an den gewünschten Eigenschaften erhalten. Gewünschte Eigenschaften werden in Verbindung mit gemeldeten Eigenschaften zum Synchronisieren von Modulkonfigurationen oder -zuständen verwendet.
Gemeldete Eigenschaften Das Modul kann gemeldete Eigenschaften festlegen, die vom Lösungs-Back-End gelesen und abgefragt werden können. Gemeldete Eigenschaften werden in Verbindung mit gewünschten Eigenschaften zum Synchronisieren von Modulkonfigurationen oder -zuständen verwendet.
Gewünschte EdgeAgent-Eigenschaften
Der Modulzwilling für den IoT Edge-Agent heißt $edgeAgent
und koordiniert die Kommunikationsvorgänge zwischen dem auf einem Gerät ausgeführten IoT Edge-Agent und IoT Hub. Die gewünschten Eigenschaften werden festgelegt, wenn ein Bereitstellungsmanifest auf einem bestimmten Gerät im Zuge einer Einzelgeräte- oder einer umfassenden Bereitstellung angewendet wird.
Eigenschaft | Beschreibung | Erforderlich |
---|---|---|
imagePullPolicy | Wann das Bild in OnCreate oder Never abgerufen werden soll (Kann nie verwendet werden, wenn das Bild bereits auf dem Gerät vorhanden ist) | Ja |
restartPolicy | Wenn das Modul neu gestartet werden soll. Mögliche Werte sind: Never: Don't restart module if not running, Always: always restart module if not running, On-Unhealthy: restart module if unhealthy. Ungesund ist, was Docker basierend auf einer Integritätsprüfung meldet, z. B. "Fehlerhaftes Funktionieren des Containers nicht ordnungsgemäß", On-Failed: Restart if Failed. | Ja |
runtime.type | Muss Docker sein. | Ja |
runtime.settings.minDockerVersion | Legen Sie die Eigenschaft auf die für dieses Bereitstellungsmanifest erforderliche Docker-Mindestversion fest. | Ja |
runtime.settings.loggingOptions | In eine Zeichenfolge umgewandelter JSON-Code mit den Protokollierungsoptionen für den IoT Edge-Agent-Container. Docker-Protokollierungsoptionen | Nein |
runtime.settings.registryCredentials.{Registrierungs-ID}.username | Der Benutzername der Containerregistrierung. Für Azure Container Registry entspricht der Benutzername in der Regel dem Namen der Registrierung. Anmeldeinformation zur Registrierung sind für alle privaten Modulimages erforderlich. | Nein |
runtime.settings.registryCredentials.{Registrierungs-ID}.password | Das Kennwort der Containerregistrierung. | Nein |
runtime.settings.registryCredentials.{Registrierungs-ID}.address | Die Adresse der Containerregistrierung. Für Azure Container Registry lautet die Adresse in der Regel {Registryname}.azurecr.io. | Nein |
schemaVersion | Entweder 1.0 oder 1.1. Version 1.1 wurde mit IoT Edge Version 1.0.10 eingeführt und wird empfohlen. | Ja |
status | Gewünschter Status des Moduls: Wird ausgeführt oder beendet. | Erforderlich |
systemModules.edgeAgent.type | Muss Docker sein. | Ja |
systemModules.edgeAgent.startupOrder | Ein ganzzahliger Wert für den Speicherort, den ein Modul in der Startreihenfolge hat. Ein 0 ist zuerst und die maximale ganze Zahl (4294967295) ist zuletzt vorhanden. Wenn kein Wert angegeben wird, ist die Standardeinstellung eine maximale ganze Zahl. | Nein |
systemModules.edgeAgent.settings.image | Der URI des IoT Edge-Agent-Images. Der IoT Edge-Agent kann sich derzeit nicht selbst aktualisieren. | Ja |
systemModules.edgeAgent.settings.createOptions | In eine Zeichenfolge umgewandelter JSON-Code, der die Optionen für die Erstellung des IoT Edge-Agent-Containers enthält. Docker-Erstellungsoptionen | Nein |
systemModules.edgeAgent.configuration.id | Die ID der Bereitstellung, von der dieses Modul bereitgestellt wurde. | IoT Hub legt diese Eigenschaft fest, wenn das Manifest mithilfe einer Bereitstellung angewandt wird. Nicht Teil eines Bereitstellungsmanifests. |
systemModules.edgeHub.type | Muss Docker sein. | Ja |
systemModules.edgeHub.type | Muss ausgeführt werden. | Ja |
systemModules.edgeHub.restartPolicy | Muss immer sein. | Ja |
systemModules.edgeHub.startupOrder | Ein ganzzahliger Wert für die Position eines Moduls in der Startreihenfolge. Ein 0 ist zuerst und die maximale ganze Zahl (4294967295) ist zuletzt vorhanden. Wenn kein Wert angegeben wird, ist die Standardeinstellung eine maximale ganze Zahl. | Nein |
systemModules.edgeHub.settings.image | Der URI des Images des IoT Edge-Hubs. | Ja |
systemModules.edgeHub.settings.createOptions | In eine Zeichenfolge umgewandelter JSON-Code mit den Optionen für die Erstellung des IoT Edge-Hubcontainers. Docker-Erstellungsoptionen | Nein |
systemModules.edgeHub.configuration.id | Die ID der Bereitstellung, von der dieses Modul bereitgestellt wurde. | IoT Hub legt diese Eigenschaft fest, wenn das Manifest mithilfe einer Bereitstellung angewandt wird. Nicht Teil eines Bereitstellungsmanifests. |
modules.{moduleId}.version | Benutzerdefinierte Zeichenfolge, die die Version des Moduls darstellt. | Ja |
modules.{moduleId}.type | Muss Docker sein. | Ja |
modules.{moduleId}.status | {wird beendet | } | Ja |
modules.{moduleId}.restartPolicy | {nie | immer} | Ja |
modules.{moduleId}.startupOrder | Ein ganzzahliger Wert für den Speicherort, den ein Modul in der Startreihenfolge hat. Ein 0 ist zuerst und die maximale ganze Zahl (4294967295) ist zuletzt vorhanden. Wenn kein Wert angegeben wird, ist die Standardeinstellung eine maximale ganze Zahl. | Nein |
modules.{moduleId}.imagePullPolicy | {on-create | never} | Nein |
modules.{moduleId}.env | Eine Liste von Umgebungsvariablen, die an das Modul übergeben werden. Nimmt das Format "<name>": {"value": "<value>"} an. |
Nein |
modules.{moduleId}.settings.image | URI des Modulimage. | Ja |
modules.{moduleId}.settings.createOptions | In eine Zeichenfolge umgewandelter JSON-Code mit den Optionen für die Erstellung des Modulcontainers. Docker-Erstellungsoptionen | Nein |
modules.{moduleId}.configuration.id | Die ID der Bereitstellung, von der dieses Modul bereitgestellt wurde. | IoT Hub legt diese Eigenschaft fest, wenn das Manifest mithilfe einer Bereitstellung angewandt wird. Nicht Teil eines Bereitstellungsmanifests. |
version | Die aktuelle Iteration mit Version, Commit und Build. | Nein |
Gemeldete EdgeAgent-Eigenschaften
Zu den vom IoT Edge-Agent gemeldeten Eigenschaften gehören drei Hauptinformationen:
- Status der Anwendung der zuletzt erkannten gewünschten Eigenschaften
- Status der Module, die nach Angaben des IoT Edge-Agents derzeit auf dem Gerät ausgeführt werden
- Kopie der gewünschten Eigenschaften, die derzeit auf dem Gerät ausgeführt werden
Anhand der Kopie der aktuellen gewünschten Eigenschaften können Sie feststellen, ob das Gerät die neueste Bereitstellung übernommen hat oder noch ein vorheriges Bereitstellungsmanifest ausführt.
Hinweis
Die gemeldeten Eigenschaften des IoT Edge-Agents sind hilfreich, da sie mit der IoT Hub-Abfragesprache abgefragt werden können, um den Status der Bereitstellungen großflächig zu untersuchen. Weitere Informationen zur Verwendung der IoT Edge-Agent-Eigenschaften für den Status finden Sie unter Grundlegendes zu IoT Edge-Bereitstellungen für einzelne Geräte oder nach Bedarf.
In der folgenden Tabelle sind die aus den gewünschten Eigenschaften kopierten Informationen nicht enthalten.
Eigenschaft | Beschreibung |
---|---|
lastDesiredStatus.code | Dieser Statuscode bezieht sich auf die letzten gewünschten Eigenschaften, die der IoT Edge-Agent erkannt hat. Zulässige Werte: 200 Erfolg, Ungültige Konfiguration, 412 400 Ungültige Schemaversion, 417 Gewünschte Eigenschaften sind leer, 500 Fehlgeschlagen. |
lastDesiredStatus.description | Textbeschreibung des Status. |
lastDesiredVersion | Dieser Integerwert bezeichnet die letzte vom IoT Edge-Agent verarbeitete Version der gewünschten Eigenschaften. |
runtime.platform.OS | Melden des auf dem Gerät ausgeführten Betriebssystems |
runtime.platform.architecture | Melden der CPU-Architektur auf dem Gerät |
schemaVersion | Schemaversion der gemeldeten Eigenschaften. |
systemModules.edgeAgent.runtimeStatus | Der gemeldete Status des IoT Edge-Agents: {wird ungesund} ausgeführt | . |
systemModules.edgeAgent.statusDescription | Textbeschreibung des gemeldeten Status des IoT Edge-Agents. |
systemModules.edgeAgent.exitCode | Der vom IoT Edge-Agent-Container gemeldete Exitcode, wenn der Container beendet wird. |
systemModules.edgeAgent.lastStartTimeUtc | Zeitpunkt, zu dem der IoT Edge-Agent zuletzt gestartet wurde. |
systemModules.edgeAgent.lastExitTimeUtc | Zeitpunkt, zu dem der IoT Edge-Agent zuletzt beendet wurde. |
systemModules.edgeHub.runtimeStatus | Status des IoT Edge-Hubs: { Fehler beim Ausführen | | | von backoff | unhealthy }. |
systemModules.edgeHub.statusDescription | Textbeschreibung des Status des IoT Edge-Hubs, falls fehlerhaft. |
systemModules.edgeHub.exitCode | Exit code reported by the IoT Edge hub container, if the container exits. |
systemModules.edgeHub.lastStartTimeUtc | Zeitpunkt, zu dem der IoT Edge-Hub zuletzt gestartet wurde |
systemModules.edgeHub.lastExitTimeUtc | Zeitpunkt, zu dem der IoT Edge-Hub zuletzt beendet wurde. |
systemModules.edgeHub.lastRestartTimeUtc | Zeitpunkt, zu dem der IoT Edge-Hub zuletzt neu gestartet wurde |
systemModules.edgeHub.lastRestartTimeUtc | Neustarthäufigkeit dieses Moduls aufgrund der Neustartrichtlinie |
modules.{moduleId}.runtimeStatus | Status des Moduls: { Running | failed | | backoff | unhealthy }. |
modules.{moduleId}.statusDescription | Textbeschreibung des Status des Moduls, falls fehlerhaft. |
modules.{moduleId}.exitCode | Der vom Modulcontainer gemeldete Exitcode, wenn der Container beendet wird. |
Module. {moduleId}.lastStartTimeUtc | Zeitpunkt, zu dem das Modul zuletzt gestartet wurde |
modules.{moduleId}.lastExitTimeUtc | Zeitpunkt, zu dem das Modul zuletzt beendet wurde. |
modules.{moduleId}.lastRestartTimeUtc | Zeitpunkt, zu dem das Modul zuletzt neu gestartet wurde |
modules.{moduleId}.restartCount | Neustarthäufigkeit dieses Moduls aufgrund der Neustartrichtlinie |
version | Version des Bilds. Beispiel: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }. |
Gewünschte EdgeHub-Eigenschaften
Der Modulzwilling für den IoT Edge-Hub wird als $edgeHub
bezeichnet und koordiniert die Kommunikationsvorgänge zwischen dem auf einem Gerät ausgeführten IoT Edge-Hub und IoT Hub. Die gewünschten Eigenschaften werden festgelegt, wenn ein Bereitstellungsmanifest auf einem bestimmten Gerät im Zuge einer Einzelgeräte- oder einer umfassenden Bereitstellung angewendet wird.
Eigenschaft | Beschreibung | Im Bereitstellungsmanifest erforderlich |
---|---|---|
schemaVersion | Entweder 1.0 oder 1.1. Version 1.1 wurde mit IoT Edge Version 1.0.10 eingeführt und wird empfohlen. | Ja |
routes.{routeName} | Eine Zeichenfolge, die eine IoT Edge-Hubroute darstellt. Weitere Informationen finden Sie unter Deklarieren von Routen. | Das routes -Element kann vorhanden, aber leer sein. |
storeAndForwardConfiguration.timeToLiveSecs | Gerätezeit in Sekunden, für die der IoT Edge-Hub Nachrichten nach einer Trennung von Routingendpunkten aufbewahrt, beispielsweise von einem IoT Hub oder einem lokalen Modul. Diese Zeit wird über jegliche Abschaltungen oder Neustarts beibehalten. Weitere Informationen finden Sie unter Offlinefunktionen. | Ja |
Gemeldete EdgeHub-Eigenschaften
Eigenschaft | Beschreibung |
---|---|
lastDesiredVersion | Dieser Integerwert bezeichnet die letzte vom IoT Edge-Hub verarbeitete Version der gewünschten Eigenschaften. |
lastDesiredStatus.code | Der Statuscode bezieht sich auf die letzten gewünschten Eigenschaften, die der IoT Edge-Hub erkannt hat. Zulässige Werte: 200 Success (Erfolg), 400 Invalid Configuration (ungültige Konfiguration), 500 Failed (Fehler) |
lastDesiredStatus.description | Textbeschreibung des Status. |
Clients | Alle Clients, die mit EdgeHub verbunden sind, mit dem Status und der letzten Verbindungszeit. Beispiel: "clients": { "device2/SimulatedTemperatureSensor": { "status": "Verbinden ed", "last Verbinden edTimeUtc": "2022-11-17T21:49:16.4781564Z" } }. |
clients.{device or moduleId}.status | Konnektivitätsstatus dieses Geräts oder Moduls. Mögliche Werte {connected disconnected | }. Nur Modulidentitäten können den Status „disconnected“ aufweisen. Nachgeschaltete Geräte, die eine Verbindung mit dem IoT Edge-Hub herstellen, werden nur bei erfolgreicher Verbindung angezeigt. |
clients.{device or moduleId}.lastConnectTime | Letzter Verbindungszeitpunkt des Geräts oder Moduls. |
clients.{device or moduleId}.lastDisconnectTime | Letzter Trennungszeitpunkt des Geräts oder Moduls. |
schemaVersion | Schemaversion der gemeldeten Eigenschaften. |
version | Version des Bilds. Beispiel: "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }. |
Nächste Schritte
Weitere Informationen zur Verwendung dieser Eigenschaften zum Erstellen von Bereitstellungsmanifesten finden Sie unter Verstehen, wie IoT Edge-Module verwendet, konfiguriert und wiederverwendet werden können.