Comprendre les fonctionnalités hors connexion étendues pour les appareils, modules et appareils enfants IoT Edge

S’applique à :IoT Edge 1.4 checkmark IoT Edge 1.4

Important

IoT Edge 1.4 est la version prise en charge. 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 active également les 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 :

  1. 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.

  2. 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.

  3. 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.

  4. 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 affectés peuvent fonctionner indéfiniment hors connexion après la synchronisation unique initiale. Toutefois, le stockage des messages dépend du paramètre de durée de vie (TTL) et de l’espace disque disponible pour le stockage des 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 de détails de l’appareil dans la Portail Azure de l’appareil parent ou enfant.

Pour plus d’informations sur la création d’une relation parent-enfant entre deux appareils IoT Edge, consultez Connecter un appareil IoT Edge en aval vers 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 :

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 être hors connexion pendant des périodes prolongées, optimisez les performances en configurant deux paramètres de hub IoT Edge :

  • Augmentez la durée de vie du paramètre, de sorte que le hub IoT Edge conserve les messages jusqu’à ce que votre appareil se reconnecte.
  • Ajoutez de l’espace disque supplémentaire pour le stockage de messages.

Durée de vie

Le paramètre de durée de vie est la durée (en secondes) pendant laquelle un message peut attendre d’être remis avant son expiration. 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 Donner aux 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 :