Propriétés des jumeaux de module de l’agent IoT Edge et du hub IoT Edge
S’applique à : IoT Edge 1.5 IoT Edge 1.4
Important
IoT Edge 1.5 LTS et IoT Edge 1.4 LTS sont des versions prises en charge. IoT Edge 1.4 LTS sera en fin de vie 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 de runtime, voir Présentation du runtime Azure IoT Edge et de 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, consultez 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 (Desired) . Le backend de solution peut définir les propriétés souhaitées, et le module peut les lire. Le module peut également recevoir des notifications sur les changements des 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 (Reported) . Le module peut définir les propriétés signalées, et le backend de solution peut les lire et les interroger. 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 jumeau de module de l’agent IoT Edge est appelé $edgeAgent
et coordonne les communications entre l’agent 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é | Description | Obligatoire |
---|---|---|
imagePullPolicy | Quand extraire l’image : OnCreate ou Never (Never peut être utilisé 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 n’est pas 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 », On-Failed : redémarrer en cas d’échec. | Oui |
runtime.type | Doit être docker. | Oui |
runtime.settings.minDockerVersion | Défini sur la version Docker minimale demandée par ce manifeste de déploiement. | Oui |
runtime.settings.loggingOptions | JSON converti en chaînes et contenant les options de journalisation du conteneur d’agent IoT Edge. Options de journalisation Docker | Non |
runtime.settings.registryCredentials.{registryId}.username | 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 nécessaires pour toutes 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 | 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 |
statut | État souhaité du module : Running ou Stopped. | Requis |
systemModules.edgeAgent.type | Doit être docker. | Oui |
systemModules.edgeAgent.startupOrder | Valeur entière pour l’emplacement d’un module dans l’ordre de démarrage. Le chiffre 0 correspond au premier emplacement, et max integer (4294967295) correspond au dernier. Si aucune valeur n’est fournie, la valeur par défaut est max integer. | Non |
systemModules.edgeAgent.settings.image | URI de l’image de l’agent IoT Edge. Actuellement, l’agent IoT Edge ne peut pas se mettre à jour lui-même. | Oui |
systemModules.edgeAgent.settings.createOptions | JSON converti en chaînes et contenant les options de création du conteneur d’agent IoT Edge. 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. Le chiffre 0 est la première valeur et max integer (4294967295) est la dernière. Si aucune valeur n’est fournie, la valeur par défaut est max integer. | 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 | {never | always} | Oui |
modules.{moduleId}.startupOrder | Valeur entière pour l’emplacement d’un module dans l’ordre de démarrage. Le chiffre 0 correspond au premier emplacement, et max integer (4294967295) correspond au dernier. Si aucune valeur n’est fournie, la valeur par défaut est max integer. | 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 | Itération actuelle qui a version, commit et build. | Non |
Propriétés signalées pour EdgeAgent
Les propriétés signalées pour l’agent IoT Edge incluent trois informations principales :
- l’état de l’application de dernières propriétés souhaitées affichées ;
- L’état des modules en cours d’exécution sur l’appareil, comme signalé par l’agent IoT Edge
- une copie des propriétés souhaitées en cours d’exécution sur l’appareil.
La copie des propriétés souhaitées actuelles est utile pour déterminer si l’appareil a appliqué le dernier déploiement ou exécute encore un manifeste de déploiement antérieur.
Remarque
Les propriétés signalées de l’agent IoT Edge sont utiles, car elles peuvent être interrogées avec le langage de requête IoT Hub afin de connaître l’état des déploiements à grande échelle. Pour plus d’informations sur l’utilisation des propriétés de l’agent IoT Edge pour l’état, consultez 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é | Description |
---|---|
lastDesiredStatus.code | Ce code d’état fait référence aux dernières propriétés souhaitées observées 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. |
lastDesiredVersion | 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 | Indique le système d’exploitation en cours d’exécution sur l’appareil. |
runtime.platform.architecture | Indique 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 | En cas de sortie, il s’agit du code de sortie signalé par l’agent IoT Edge. |
systemModules.edgeAgent.lastStartTimeUtc | Heure du dernier démarrage de l’agent IoT Edge. |
systemModules.edgeAgent.lastExitTimeUtc | Heure de la dernière sortie 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 | En cas de sortie, il s’agit du code de sortie signalé par le conteneur du hub IoT Edge. |
systemModules.edgeHub.lastStartTimeUtc | Heure du dernier démarrage du hub IoT Edge. |
systemModules.edgeHub.lastExitTimeUtc | Heure de la dernière sortie 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 | En cas de sortie, il s’agit du code de sortie signalé par le conteneur du module. |
modules.{moduleId}.lastStartTimeUtc | Heure du dernier démarrage du module. |
modules.{moduleId}.lastExitTimeUtc | Heure de la dernière sortie 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é | Description | 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é | Description |
---|---|
lastDesiredVersion | 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 la 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.