Comprendre les fonctionnalités hors connexion étendues pour les appareils, modules et appareils enfants 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.
Azure IoT Edge prend en charge les opérations hors connexion étendues sur vos appareils IoT Edge et permet également certaines opérations hors connexion sur les appareils en aval. Dès lors qu’un appareil IoT Edge s’est connecté au moins une fois à IoT Hub, cet appareil et tous les appareils en aval peuvent continuer à fonctionner même s’ils sont déconnectés de façon prolongée ou intermittente.
Fonctionnement
Quand un appareil IoT Edge passe en mode hors connexion, le hub IoT Edge assure trois rôles :
- Il stocke tous les messages à acheminer en amont jusqu’à ce que l’appareil puisse se reconnecter.
- Il authentifie, pour le compte d’IoT Hub, les modules et les appareils en aval pour qu’ils puissent continuer à fonctionner.
- Il rend possible la communication entre les appareils en aval qui communiquent normalement par le biais d’IoT Hub.
L’exemple de scénario IoT Edge suivant montre le fonctionnement en mode hors connexion :
Configurer des appareils
Sur les appareils IoT Edge, les fonctionnalités hors connexion sont automatiquement activées. Pour étendre cette capacité à d’autres appareils, vous devez configurer les appareils en aval pour qu’ils fassent confiance à l’appareil parent qui leur est affecté et acheminent les communications vers le cloud par l’intermédiaire du parent en tant que passerelle.
Synchroniser avec IoT Hub
Après l’installation du runtime IoT Edge, l’appareil IoT Edge doit être connecté au moins une fois pour pouvoir se synchroniser avec IoT Hub. Lors de cette synchronisation, l’appareil IoT Edge obtient des informations sur tous les appareils en aval qui lui sont assignés. De plus, l’appareil IoT Edge met à jour en toute sécurité son cache local pour permettre les opérations hors connexion et il récupère les paramètres du stockage local des messages de télémétrie.
Passer en mode hors connexion
Même quand ils ne sont plus connectés à IoT Hub, l’appareil IoT Edge, ses modules déployés et ses appareils en aval peuvent continuer à fonctionner pendant une durée indéterminée. Les modules et les appareils en aval hors connexion peuvent démarrer et redémarrer en s’authentifiant auprès du hub IoT Edge. Les données de télémétrie liées qui sont transmises en amont à IoT Hub sont stockées localement. La communication entre les modules ou entre les appareils en aval est maintenue par le biais de méthodes ou messages directs.
Reconnecter et resynchroniser avec IoT Hub
Après la restauration de la connexion à IoT Hub, l’appareil IoT Edge est resynchronisé. Les messages stockés localement sont remis au hub IoT immédiatement, mais dépendent de la vitesse de la connexion, de la latence du hub IoT et d’autres facteurs associés. Ils sont remis dans l’ordre dans lequel ils ont été stockés.
Les éventuelles différences entre les propriétés désirées et rapportées des modules et des appareils sont rapprochées. L’appareil IoT Edge apporte les modifications nécessaires aux appareils en aval qui lui sont assignés.
Restrictions et limites
Les appareils IoT Edge et leurs appareils en aval assignés peuvent fonctionner en mode hors connexion pendant une durée indéterminée dès lors qu’ils ont été synchronisés une fois. Toutefois, le stockage des messages dépend du paramètre de durée de vie (TTL) et de l’espace disque disponible pour stocker les messages.
Le EdgeAgent d’un appareil met à jour ses propriétés signalées à chaque modification de l’état du déploiement, par exemple lors d’un déploiement nouveau ou qui a échoué. Quand un appareil est hors connexion, le EdgeAgent ne peut pas signaler l’état au portail Azure. Par conséquent, l’état de l’appareil dans le portail Azure peut rester 200 OK quand l’appareil IoT Edge n’a pas de connectivité Internet.
Configurer des appareils parents et enfants
Par défaut, chaque appareil parent peut avoir jusqu’à 100 enfants. Vous pouvez modifier cette limite en définissant la variable d’environnement MaxConnectedClients dans le module edgeHub. Un appareil enfant n’a qu’un seul parent.
Remarque
Un appareil en aval émet des données directement vers Internet ou vers des appareils de passerelle (IoT Edge activés ou non). Un appareil enfant peut être un appareil en aval ou un appareil de passerelle dans une topologie imbriquée.
Les appareils en aval peuvent être n’importe quel appareil, IoT Edge ou non IoT Edge, inscrits auprès du même hub IoT.
Pour plus d’informations sur la création d’une relation parent-enfant entre un appareil IoT Edge et un appareil IoT, consultez Authentifier un appareil en aval auprès d’Azure IoT Hub. Les sections relatives aux clés symétriques, aux certificats X.509 auto-signés et aux certificats X.509 signés par une autorité de certification présentent des exemples d’utilisation du portail Azure et d’Azure CLI pour définir les relations parent-enfant lors de la création d’appareils. Pour les appareils existants, vous pouvez déclarer la relation à partir de la page des détails de l'appareil dans le portail Azure, que ce soit pour l'appareil parent ou l'appareil enfant.
Pour plus d’informations sur la création d’une relation parent-enfant entre deux appareils IoT Edge, consultez Connexion d’un appareil IoT Edge en aval à une passerelle Azure IoT Edge.
Définir un appareil parent en tant que passerelle
Vous pouvez considérer une relation parent/enfant comme une passerelle transparente, dans laquelle l’appareil enfant possède sa propre identité dans IoT Hub mais communique avec le cloud via son parent. Pour une communication sécurisée, l’appareil enfant doit pouvoir vérifier que l’appareil parent provient d’une source fiable. Autrement, des tiers risqueraient de configurer des appareils malveillants pour usurper l’identité des parents et intercepter les communications.
Une façon de créer cette relation d’approbation est décrite en détail dans les articles suivants :
- Configurer un appareil IoT Edge en tant que passerelle transparente
- Connecter un appareil en aval (enfant) à une passerelle Azure IoT Edge
Spécifier les serveurs DNS
Pour améliorer la robustesse, il est vivement recommandé de spécifier les adresses de serveur DNS utilisées dans votre environnement. Pour définir votre serveur DNS pour IoT Edge, consultez la résolution au problème Le module Edge Agent rapporte le message « fichier config vide » et aucun module ne démarre sur l’appareil dans l’article relatif à la résolution des problèmes.
Paramètres hors connexion facultatifs
Si vos appareils se déconnectent, l’appareil parent IoT Edge stocke tous les messages destinés au cloud jusqu’à ce que la connexion soit rétablie. Le module hub IoT Edge gère le stockage et le transfert des messages hors connexion.
Pour les appareils qui peuvent rester hors connexion pendant de longues périodes, optimisez les performances en configurant deux paramètres de hub IoT Edge :
- Augmentez le paramètre de durée de vie de de sorte que le hub IoT Edge conserve les messages jusqu’à ce que votre appareil se reconnecte.
- Ajoutez l’espace disque supplémentaire pour le stockage des messages.
Durée de vie
Le paramètre de durée de vie définit la durée (en secondes) pendant laquelle un message peut attendre d’être remis avant d’expirer. La durée par défaut est de 7 200 secondes (deux heures). La valeur maximale n’est limitée que par la valeur maximale d’une variable entière, qui est d’environ 2 milliards.
Ce paramètre est une propriété désirée du hub IoT Edge, qui est stockée dans le jumeau du module. Vous pouvez le configurer dans le Portail Azure ou directement dans le manifeste de déploiement.
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.1",
"routes": {},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
}
Stockage hôte pour les modules système
Les messages et les informations d’état du module sont stockés dans le système de fichiers du conteneur local du hub IoT Edge par défaut. Pour améliorer la fiabilité, en particulier lors d’une mise hors connexion, vous pouvez également dédier un stockage sur l’appareil hôte IoT Edge. Pour plus d’informations, consultez Fournir à des modules l’accès au stockage local d’un appareil.
Étapes suivantes
Découvrez comment configurer une passerelle transparente pour les connexions parents/enfants de votre appareil :