Partager via


Propriétés des jumeaux de module de l’agent IoT Edge et du hub IoT Edge

S’applique à :Coche IoT Edge 1.5 IoT Edge 1.5

Important

IoT Edge 1.5 LTS est la version prise en charge. IoT Edge 1.4 LTS est en fin de vie depuis le 12 novembre 2024. Si vous utilisez une version antérieure, consultez l’article Mettre à jour IoT Edge.

L’agent IoT Edge et le hub IoT Edge sont les deux modules qui constituent le runtime IoT Edge. Pour plus d’informations sur les responsabilités de chaque module d’exécution, consultez comprendre le runtime Azure IoT Edge et son architecture.

Cet article fournit les propriétés souhaitées et signalées des jumeaux de module du runtime. Pour plus d’informations sur le déploiement de modules sur des appareils IoT Edge, voir comment déployer des modules et établir des itinéraires dans IoT Edge.

Un jumeau de module inclut les éléments suivants :

  • Propriétés souhaitées. Le serveur principal de solution définit les propriétés souhaitées et le module les lit. Le module reçoit également des notifications de modifications dans les propriétés souhaitées. Les propriétés souhaitées sont utilisées en même temps que les propriétés signalées pour synchroniser une configuration ou une condition de module.

  • Propriétés signalées. Le module définit les propriétés signalées, et le back-end de la solution lit et les interroge. Les propriétés signalées sont utilisées en même temps que les propriétés souhaitées pour synchroniser une configuration ou une condition de module.

Propriétés souhaitées pour EdgeAgent

Le module jumeau de l’agent IoT Edge est appelé $edgeAgent. Il coordonne les communications entre l’agent IoT Edge s’exécutant sur un appareil et IoT Hub. Les propriétés souhaitées sont définies lors de l’application d’un manifeste de déploiement sur un appareil spécifique dans le cadre d’un déploiement d’appareil unique ou à grande échelle.

Propriété Descriptif Obligatoire
imagePullPolicy Spécifie quand extraire l’image : OnCreate ou Never. N’utilisez jamais si l’image est déjà sur l’appareil. Oui
restartPolicy Quand le module doit être redémarré. Les valeurs possibles sont : Never : ne pas redémarrer le module s’il n’est pas en cours d’exécution, Always : toujours redémarrer le module s’il n’est pas en cours d’exécution, On-Unhealthy : redémarrer le module s’il est non sain. Non sain est ce que Docker signale en fonction d’un contrôle d’intégrité, par exemple « Non sain : le conteneur ne fonctionne pas correctement », échecdu redémarrage en cas d’échec. Oui
runtime.type Cela doit être docker. Oui
runtime.settings.minDockerVersion Spécifie la version minimale de Docker requise par ce manifeste de déploiement. Oui
runtime.settings.loggingOptions Spécifie un JSON stringified avec les options de journalisation pour le conteneur d’agent IoT Edge. En savoir plus sur les options de journalisation Docker. Non
runtime.settings.registryCredentials.{registryId}.username Spécifie le nom d’utilisateur du registre de conteneurs. Pour Azure Container Registry, le nom d’utilisateur est généralement le nom du registre. Les informations d’identification du Registre sont requises pour les images de module privé. Non
runtime.settings.registryCredentials.{registryId}.password Mot de passe du registre de conteneurs. Non
runtime.settings.registryCredentials.{registryId}.address Adresse du registre de conteneurs. Pour Azure Container Registry, l’adresse est généralement {nom du registre}.azurecr.io. Non
schemaVersion Spécifie 1.0 ou 1.1. La version 1.1, introduite avec IoT Edge version 1.0.10, est recommandée. Oui
status État souhaité du module : Running ou Stopped. Obligatoire
systemModules.edgeAgent.type Doit être docker. Oui
systemModules.edgeAgent.startupOrder Spécifie un entier pour la position du module dans l’ordre de démarrage. 0 est premier, et l’entier maximal (4294967295) est le dernier. Si aucune valeur n’est fournie, la valeur par défaut est l’entier maximal. Non
systemModules.edgeAgent.settings.image Spécifie l’URI de l’image de l’agent IoT Edge. L’agent IoT Edge ne peut pas se mettre à jour lui-même. Oui
systemModules.edgeAgent.settings.createOptions Spécifie un JSON stringified avec des options pour créer le conteneur de l’agent IoT Edge. En savoir plus sur les options de création docker. Non
systemModules.edgeAgent.configuration.id ID du déploiement ayant déployé ce module. IoT Hub définit cette propriété quand le manifeste est appliqué à l’aide d’un déploiement. Ne fait pas partie d’un manifeste de déploiement.
systemModules.edgeHub.type Doit être docker. Oui
systemModules.edgeHub.type Doit être running. Oui
systemModules.edgeHub.restartPolicy Doit être always. Oui
systemModules.edgeHub.startupOrder Valeur entière pour l’emplacement d’un module dans l’ordre de démarrage. Un 0 est la première valeur et l’entier maximum (4294967295) est la dernière. Si aucune valeur n’est fournie, la valeur par défaut est l’entier maximum. Non
systemModules.edgeHub.settings.image URI de l’image du hub IoT Edge. Oui
systemModules.edgeHub.settings.createOptions JSON converti en chaînes et contenant les options de création du conteneur du hub IoT Edge. Options de création Docker Non
systemModules.edgeHub.configuration.id ID du déploiement ayant déployé ce module. IoT Hub définit cette propriété quand le manifeste est appliqué à l’aide d’un déploiement. Ne fait pas partie d’un manifeste de déploiement.
modules.{moduleId}.version Chaîne définie par l’utilisateur représentant la version de ce module. Oui
modules.{moduleId}.type Doit être docker. Oui
modules.{moduleId}.status {running | stopped} Oui
modules.{moduleId}.restartPolicy {jamais | always} Oui
modules.{moduleId}.startupOrder Valeur entière pour l’emplacement d’un module dans l’ordre de démarrage. Un 0 est la première valeur et l’entier maximum (4294967295) est la dernière. Si aucune valeur n’est fournie, la valeur par défaut est l’entier maximum. Non
modules.{moduleId}.imagePullPolicy {on-create | never} Non
modules.{moduleId}.env Liste de variables d’environnement à passer au module. Prend le format "<name>": {"value": "<value>"}. Non
modules.{moduleId}.settings.image URI de l’image du module. Oui
modules.{moduleId}.settings.createOptions Champ de chaîne JSON contenant les options de création du conteneur de module. Options de création Docker Non
modules.{moduleId}.configuration.id ID du déploiement ayant déployé ce module. IoT Hub définit cette propriété quand le manifeste est appliqué à l’aide d’un déploiement. Ne fait pas partie d’un manifeste de déploiement.
version L’itération actuelle qui comporte la version, le commit et la build. Non

Propriétés signalées pour EdgeAgent

Les propriétés signalées de l’agent IoT Edge incluent trois informations principales :

  • État de l’application des propriétés souhaitées,
  • État des modules en cours d’exécution sur l’appareil comme indiqué par l’agent IoT Edge et
  • Copie des propriétés souhaitées actuellement actives sur l'appareil.

La copie des propriétés souhaitées actuelles permet de déterminer si l’appareil a appliqué le dernier déploiement ou exécute toujours un manifeste de déploiement précédent.

Remarque

Vous pouvez interroger les propriétés signalées de l’agent IoT Edge avec le langage de requête IoT Hub pour examiner l’état du déploiement à grande échelle. Découvrez comment utiliser les propriétés de l’agent IoT Edge pour déterminer l’état dans Comprendre les déploiements IoT Edge pour les appareils uniques ou à grande échelle.

Le tableau suivant n’inclut pas les informations copiées à partir des propriétés souhaitées.

Propriété Descriptif
lastDesiredStatus.code Code d'état des dernières propriétés souhaitées vues par l'agent IoT Edge. Valeurs autorisées : 200 Réussite, 400 Configuration non valide, 412 Version de schéma non valide, 417 Les propriétés souhaitées sont vides, 500 Échec.
lastDesiredStatus.description Texte de description de l’état.
dernièreVersionSouhaitée Cet entier référence la dernière version des propriétés souhaitées traitées par l’agent IoT Edge.
runtime.platform.OS Signale le système d’exploitation en cours d’exécution sur l’appareil.
runtime.platform.architecture Signale l’architecture du processeur sur l’appareil.
schemaVersion Version de schéma des propriétés signalées.
systemModules.edgeAgent.runtimeStatus État signalé de l’agent IoT Edge : {running | unhealthy}.
systemModules.edgeAgent.statusDescription Texte de description de l’état signalé de l’agent IoT Edge.
systemModules.edgeAgent.exitCode Code de sortie signalé par le conteneur de l’agent IoT Edge si le conteneur s’arrête.
systemModules.edgeAgent.lastStartTimeUtc Heure du dernier démarrage de l’agent IoT Edge.
systemModules.edgeAgent.lastExitTimeUtc Heure du dernier arrêt de l’agent IoT Edge.
systemModules.edgeHub.runtimeStatus État du hub IoT Edge : { running | stopped | failed | backoff | unhealthy }.
systemModules.edgeHub.statusDescription Texte de description de l’état du hub IoT Edge, si celui-ci est non sain.
systemModules.edgeHub.exitCode Code de sortie signalé par le conteneur du hub IoT Edge, si le containeur s’arrête.
systemModules.edgeHub.lastStartTimeUtc Heure du dernier démarrage du hub IoT Edge.
systemModules.edgeHub.lastExitTimeUtc Heure du dernier arrêt du hub IoT Edge.
systemModules.edgeHub.lastRestartTimeUtc Heure du dernier redémarrage du hub IoT Edge.
systemModules.edgeHub.restartCount Nombre de redémarrages de ce module dans le cadre de la stratégie de redémarrage.
modules.{moduleId}.runtimeStatus État du module : { running | stopped | failed | backoff | unhealthy }.
modules.{moduleId}.statusDescription Texte de description de l’état du module, si celui-ci est non sain.
modules.{moduleId}.exitCode Code de sortie signalé par le conteneur du module, si le containeur s’arrête.
modules.{moduleId}.lastStartTimeUtc Heure du dernier démarrage du module.
modules.{moduleId}.lastExitTimeUtc Heure du dernier arrêt du module.
modules.{moduleId}.lastRestartTimeUtc Heure du dernier redémarrage du module.
modules.{moduleId}.restartCount Nombre de redémarrages de ce module dans le cadre de la stratégie de redémarrage.
version Version de l’image. Exemple : "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }.

Propriétés souhaitées pour EdgeHub

Le jumeau de module du hub IoT Edge est appelé $edgeHub et coordonne les communications entre le hub IoT Edge exécuté sur un appareil et IoT Hub. Les propriétés souhaitées sont définies lors de l’application d’un manifeste de déploiement sur un appareil spécifique dans le cadre d’un déploiement d’appareil unique ou à grande échelle.

Propriété Descriptif Requise dans le manifeste de déploiement
schemaVersion 1.0 ou 1.1. La version 1.1 a été introduite avec IoT Edge version 1.0.10, et est celle recommandée. Oui
routes.{routeName} Chaîne représentant la route d’un hub IoT Edge. Pour plus d’informations, consultez Déclarer des itinéraires. L’élément routes peut être présent mais vide.
storeAndForwardConfiguration.timeToLiveSecs Durée de l’appareil en secondes pendant laquelle le hub IoT Edge conserve les messages en cas de points de terminaison de routage déconnectés, par exemple, déconnectés d’IoT Hub ou d’un module local. Cette durée persiste sur les pannes ou redémarrages. Pour plus d’informations, voir Fonctionnalités hors connexion. Oui

Propriétés signalées pour EdgeHub

Propriété Descriptif
dernièreVersionSouhaitée Cet entier référence la dernière version des propriétés souhaitées traitées par le hub IoT Edge.
lastDesiredStatus.code Ce code d’état fait référence aux dernières propriétés souhaitées observées par le hub IoT Edge. Valeurs autorisées : 200 Réussite, 400 Configuration non valide, 500 Échec
lastDesiredStatus.description Texte de description de l’état.
Applications mobiles Tous les clients connectés à edgeHub avec l’état et l’heure de leur dernière connexion. Exemple : "clients": { "device2/SimulatedTemperatureSensor": { "status": "Connected", "lastConnectedTimeUtc": "2022-11-17T21:49:16.4781564Z" } }.
clients.{device or moduleId}.status État de connectivité de cet appareil ou module. Valeurs possibles : {connected | disconnected}. Seules les identités de module peuvent être à l’état déconnecté. Les appareils en aval se connectant au hub IoT Edge ne s’affichent que lorsqu’ils sont connectés.
clients.{device or moduleId}.lastConnectTime Dernière connexion de l’appareil ou du module.
clients.{device or moduleId}.lastDisconnectTime Dernière déconnexion de l’appareil ou du module.
schemaVersion Version de schéma des propriétés signalées.
version Version de l’image. Exemple : "version": { "version": "1.2.7", "build": "50979330", "commit": "d3ec971caa0af0fc39d2c1f91aef21e95bd0c03c" }.

Étapes suivantes

Pour savoir comment utiliser ces propriétés pour générer des manifestes de déploiement, consultez Comprendre comment les modules IoT Edge peuvent être utilisés, configurés et réutilisées.