

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
<a name="sync-shadows-with-iot-core"></a>

Le composant Shadow Manager permet AWS IoT Greengrass de synchroniser les états d'ombre des périphériques locaux avec AWS 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.

**Topics**
+ [Conditions préalables](#shadow-sync-prereqs)
+ [Configuration du composant Shadow Manager](#configure-shadow-manager-for-sync)
+ [Synchroniser les ombres locales](#sync-local-shadows)
+ [Comportement des conflits liés à la fusion](#shadow-merge-behavior)

## Conditions préalables
<a name="shadow-sync-prereqs"></a>

Pour synchroniser les ombres locales avec AWS 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 :
+ [AWS IoT Core actions politiques décrites](https://docs.aws.amazon.com/iot/latest/developerguide/iot-policy-actions.html) dans le *guide du AWS IoT développeur*
+ [AWS IoT Politique minimale pour les appareils AWS IoT Greengrass V2 principaux](device-auth.md#greengrass-core-minimal-iot-policy)
+ [Mettre à jour la AWS IoT politique d'un appareil principal](device-auth.md#update-core-device-iot-policy)

## Configuration du composant Shadow Manager
<a name="configure-shadow-manager-for-sync"></a>

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](create-deployments.md) 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**  <a name="note-requirement-enable-shadow-manager-client-devices"></a>
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](work-with-client-device-shadows.md).

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](shadow-manager-component.md#shadow-manager-component-configuration) 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` ou`cloudToDevice`. Pour plus d'informations, consultez [le paramètre de configuration de direction](shadow-manager-component.md#shadow-manager-component-configuration) 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
<a name="sync-local-shadows"></a>

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'`betweenDeviceAndCloud`option 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` ou`cloudToDevice`, Shadow Manager récupère les informations d'état signalées à partir du document Cloud Shadow dans AWS 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` ou`deviceToCloud`, Shadow Manager publie l'état actuel de l'appareil dans le document Cloud Shadow.

## Comportement des conflits liés à la fusion
<a name="shadow-merge-behavior"></a>

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.