Synchronisez les ombres de l'appareil local avec AWS IoT Core - AWS IoT Greengrass

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Synchronisez les ombres de l'appareil local avec AWS IoT Core

Le composant Shadow Manager permet AWS IoT Greengrass de synchroniser les états d'ombre des périphériques locaux avecAWS IoT Core. Vous devez modifier la configuration du composant Shadow Manager pour inclure le paramètre de synchronization configuration et spécifier les noms AWS IoT des objets pour vos appareils, ainsi que les ombres que vous souhaitez synchroniser.

Lorsque vous configurez le gestionnaire d'ombres pour synchroniser les ombres, il synchronise tous les changements d'état pour les ombres spécifiées, que les modifications se produisent dans les documents d'ombre locaux ou dans les documents d'ombre du cloud.

Vous pouvez également spécifier si le composant Shadow Manager synchronise les ombres en temps réel ou à intervalles réguliers. Par défaut, le composant Shadow Manager synchronise les ombres en temps réel, de sorte que le périphérique principal envoie et reçoit des mises à jour des ombres depuis AWS IoT Core et vers chaque mise à jour. Vous pouvez configurer des intervalles périodiques pour réduire l'utilisation de la bande passante et les frais.

Prérequis

Pour synchroniser les ombres locales avecAWS IoT Core, vous devez configurer la AWS IoT politique de l'appareil principal de Greengrass afin d'autoriser les actions de politique AWS IoT Core parallèle suivantes.

  • iot:GetThingShadow

  • iot:UpdateThingShadow

  • iot:DeleteThingShadow

Pour plus d’informations, consultez les ressources suivantes :

Configuration du composant Shadow Manager

Le gestionnaire de fantômes a besoin d'une liste de mappages de noms de fantômes pour synchroniser les informations relatives à l'état des ombres contenues dans les documents d'ombre locaux avec les documents d'ombre dans AWS IoT Core le cloud.

Pour synchroniser les états des ombres, créez un déploiement incluant le aws.greengrass.ShadowManager composant et spécifiez les ombres que vous souhaitez synchroniser dans le paramètre de synchronize configuration de la configuration du gestionnaire des ombres du déploiement.

Note

Pour permettre à un périphérique principal d'interagir avec les ombres du périphérique client, vous devez également configurer et déployer le composant de pont MQTT. Pour plus d'informations, voir Activer le Shadow Manager pour communiquer avec les appareils clients.

L'exemple de mise à jour de configuration suivant indique au composant Shadow Manager de synchroniser les ombres suivantes avec AWS IoT Core :

  • L'ombre classique de l'appareil principal

  • Le nom MyCoreShadow de l'appareil principal

  • L'ombre classique d'un objet IoT nommé MyDevice2

  • Les ombres nommées MyShadowA et MyShadowB pour un objet IoT nommé MyDevice1

Cette mise à jour de configuration indique de synchroniser les ombres avec AWS IoT Core en temps réel. Si vous utilisez Shadow Manager v2.1.0 ou version ultérieure, vous pouvez configurer le composant Shadow Manager pour synchroniser les ombres à intervalles réguliers. Pour configurer cette fonctionnalité, remplacez la stratégie de periodic synchronisation par et spécifiez un intervalle delay en secondes. Pour plus d'informations, consultez le paramètre de configuration de stratégie du composant Shadow Manager.

Cette mise à jour de configuration indique de synchroniser les ombres dans les deux sens entre le périphérique principal AWS IoT Core et le périphérique principal. Si vous utilisez Shadow Manager v2.2.0 ou version ultérieure, vous pouvez configurer le composant Shadow Manager pour synchroniser les ombres dans une seule direction. Pour configurer cette fonctionnalité, remplacez la synchronisation direction par deviceToCloud oucloudToDevice. Pour plus d'informations, consultez le paramètre de configuration de direction du composant Shadow Manager.

{ "strategy": { "type": "realTime" }, "synchronize": { "coreThing": { "classic": true, "namedShadows": [ "MyCoreShadow" ] }, "shadowDocuments": [ { "thingName": "MyDevice1", "classic": false, "namedShadows": [ "MyShadowA", "MyShadowB" ] }, { "thingName": "MyDevice2", "classic": true, "namedShadows": [ ] } ], "direction": "betweenDeviceAndCloud" } }

Synchroniser les ombres locales

Lorsque le périphérique principal de Greengrass est connecté au AWS IoT cloud, le gestionnaire d'ombres exécute les tâches suivantes pour les ombres que vous spécifiez dans la configuration des composants. Le comportement dépend de l'option de configuration de la direction de synchronisation des ombres que vous spécifiez. Par défaut, le gestionnaire d'ombres utilise l'betweenDeviceAndCloudoption permettant de synchroniser les ombres dans les deux directions. Si vous utilisez Shadow Manager v2.2.0 ou version ultérieure, vous pouvez configurer le périphérique principal pour synchroniser les ombres dans une seule direction, qui peut être cloudToDevice ou. deviceToCloud

  • Si la configuration de la direction de synchronisation des ombres est betweenDeviceAndCloud oucloudToDevice, Shadow Manager récupère les informations d'état signalées à partir du document Cloud Shadow dansAWS IoT Core. Il met ensuite à jour les documents fictifs stockés localement pour synchroniser l'état de l'appareil.

  • Si la configuration de la direction de synchronisation des ombres est betweenDeviceAndCloud oudeviceToCloud, Shadow Manager publie l'état actuel de l'appareil dans le document Cloud Shadow.

Comportement des conflits liés à la fusion

Dans certains cas, par exemple lorsque le périphérique principal est déconnecté d'Internet, une ombre peut changer dans le service parallèle local et dans le AWS IoT cloud avant que le gestionnaire parallèle ne synchronise les modifications. Par conséquent, les états souhaités et signalés diffèrent entre le service parallèle local et le AWS IoT cloud

Lorsque le gestionnaire d'ombres synchronise l'ombre, il fusionne les modifications selon le comportement suivant :

  • Si vous utilisez une version du gestionnaire d'ombres antérieure à la version 2.2.0, ou lorsque vous spécifiez la direction de synchronisation des betweenDeviceAndCloud ombres, le comportement suivant s'applique :

    • En cas de conflit de fusion dans l'état souhaité pour une ombre, le gestionnaire des ombres remplace la section en conflit du document parallèle local par la valeur provenant du AWS IoT cloud.

    • En cas de conflit de fusion dans l'état signalé d'une ombre, le gestionnaire des ombres remplace la section conflictuelle de l'ombre dans le AWS IoT cloud par la valeur du document parallèle local.

  • Lorsque vous spécifiez la deviceToCloud direction de synchronisation des ombres, le gestionnaire d'ombres remplace la section conflictuelle de l'ombre dans le AWS IoT cloud par la valeur du document d'ombre local.

  • Lorsque vous spécifiez la cloudToDevice direction de synchronisation des ombres, le gestionnaire d'ombres remplace la section en conflit du document d'ombre local par la valeur provenant du AWS IoT cloud.