

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Interacción y sincronización con las sombras de dispositivo de cliente
<a name="work-with-client-device-shadows"></a>

Puede usar el [componente administrador de sombras](shadow-manager-component.md) para administrar las sombras locales, incluidas las sombras de dispositivo de cliente. Puede usar el administrador de sombras para hacer lo siguiente:
+ Interactuar con las sombras de dispositivo de cliente en los componentes de Greengrass.
+ Sincronice las sombras de los dispositivos cliente con. AWS IoT Core

**nota**  
El componente administrador de sombras no sincroniza las sombras con ellas de forma AWS IoT Core predeterminada. Debe configurar el componente administrador de sombras para especificar qué sombras de dispositivo de cliente desea sincronizar.

**Topics**
+ [Requisitos previos](#client-device-shadows-prerequisites)
+ [Habilitación del administrador de sombras para que se comunique con los dispositivos de cliente](#enable-shadow-manager-client-devices)
+ [Interacción con las sombras de dispositivo de cliente en los componentes](#interact-with-client-device-shadows)
+ [Sincronice las sombras de los dispositivos cliente con AWS IoT Core](#sync-client-device-shadows-with-iot-core)

## Requisitos previos
<a name="client-device-shadows-prerequisites"></a>

Para interactuar con las sombras de los dispositivos cliente y sincronizarlas con las sombras de los dispositivos cliente AWS IoT Core, un dispositivo básico debe cumplir los siguientes requisitos:
+ El dispositivo principal debe ejecutar los siguientes componentes, además de los [componentes de Greengrass para la compatibilidad con los dispositivos de cliente](connect-client-devices.md#cloud-discovery-components):
  + [Núcleo de Greengrass](greengrass-nucleus-component.md) versión 2.6.0 o posterior
  + [Administrador de sombras](shadow-manager-component.md) versión 2.2.0 o posterior
  + [Puente MQTT](mqtt-bridge-component.md) versión 2.2.0 o posterior
+ El componente de [autenticación del dispositivo de cliente](client-device-auth-component.md) debe configurarse para permitir que los dispositivos de cliente se comuniquen sobre [temas de sombras de dispositivo](https://docs.aws.amazon.com/iot/latest/developerguide/reserved-topics.html#reserved-topics-shadow).

## Habilitación del administrador de sombras para que se comunique con los dispositivos de cliente
<a name="enable-shadow-manager-client-devices"></a>

De forma predeterminada, el componente administrador de sombras no administra las sombras de dispositivo de cliente. Para habilitar esta característica, debe retransmitir los mensajes MQTT entre los dispositivos de cliente y el componente administrador de sombras. Los dispositivos de cliente utilizan los mensajes MQTT para recibir y enviar actualizaciones de sombra de dispositivo. [El componente administrador de sombras se suscribe a la interfaz local de publish/subscribe Greengrass, por lo que puede configurar [el componente puente MQTT](mqtt-bridge-component.md) para retransmitir mensajes MQTT sobre temas ocultos de dispositivos.](https://docs.aws.amazon.com/iot/latest/developerguide/reserved-topics.html#reserved-topics-shadow)

El componente puente de MQTT utiliza una lista de asignaciones de temas, cada una de las cuales especifica un origen y un destino del mensaje. Para permitir que el componente administrador de sombras administre las sombras de dispositivo de cliente, implemente el componente puente de MQTT y especifique los temas de sombra para las sombras de dispositivo de cliente. Debe configurar el puente para retransmitir mensajes en ambas direcciones entre el MQTT local y el servicio de publicación/suscripción local.

<a name="create-mqtt-bridge-deployment-info"></a>Para implementar el componente puente MQTT en un dispositivo principal o en un grupo de dispositivos principales, [cree una implementación](create-deployments.md) que incluya el componente `aws.greengrass.clientdevices.mqtt.Bridge`. Especifique las asignaciones de temas, `mqttTopicMapping`, en la configuración del componente puente de MQTT en la implementación.

Utilice los siguientes ejemplos para configurar el componente puente d MQTT para permitir la comunicación entre los dispositivos de cliente y el componente administrador de sombras.

**nota**  
Puede utilizar estos ejemplos de configuración en la consola. AWS IoT Greengrass Si utilizas la AWS IoT Greengrass API, la actualización de `merge` configuración requiere un objeto JSON serializado, por lo que debes serializar los siguientes objetos JSON en cadenas. Para obtener más información, consulte [Actualización de las configuraciones de los componentes](update-component-configurations.md).

**Example Ejemplo: administrar todas las sombras de dispositivo de cliente**  
El siguiente ejemplo de configuración de puente de MQTT permite que el administrador de sombras administre todas las sombras de todos los dispositivos de cliente.  

```
{
  "mqttTopicMapping": {
    "ShadowsLocalMqttToPubsub": {
      "topic": "$aws/things/+/shadow/#",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "ShadowsPubsubToLocalMqtt": {
      "topic": "$aws/things/+/shadow/#",
      "source": "Pubsub",
      "target": "LocalMqtt"
    }
  }
}
```

**Example Ejemplo: administrar las sombras de un dispositivo de cliente**  
El siguiente ejemplo de configuración de puente de MQTT permite que el administrador de sombras administre todas las sombras de un dispositivo de cliente llamado `MyClientDevice`.  

```
{
  "mqttTopicMapping": {
    "ShadowsLocalMqttToPubsub": {
      "topic": "$aws/things/MyClientDevice/shadow/#",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "ShadowsPubsubToLocalMqtt": {
      "topic": "$aws/things/MyClientDevice/shadow/#",
      "source": "Pubsub",
      "target": "LocalMqtt"
    }
  }
}
```

**Example Ejemplo: administrar una sombra con nombre para todos los dispositivos de cliente**  
El siguiente ejemplo de configuración de puente de MQTT permite que el administrador de sombras administre una sombra con nombre `DeviceConfiguration` para todos los dispositivos de cliente.  

```
{
  "mqttTopicMapping": {
    "ShadowsLocalMqttToPubsub": {
      "topic": "$aws/things/+/shadow/name/DeviceConfiguration/#",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "ShadowsPubsubToLocalMqtt": {
      "topic": "$aws/things/+/shadow/name/DeviceConfiguration/#",
      "source": "Pubsub",
      "target": "LocalMqtt"
    }
  }
}
```

**Example Ejemplo: administrar todas las sombras sin nombre de los dispositivos de cliente**  
El siguiente ejemplo de configuración de puente de MQTT permite que el administrador de sombras administre todas las sombras sin nombre, pero no las que tengan nombre, de todos los dispositivos de cliente.  

```
{
  "mqttTopicMapping": {
    "DeleteShadowLocalMqttToPubsub": {
      "topic": "$aws/things/+/shadow/delete",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "DeleteShadowPubsubToLocalMqtt": {
      "topic": "$aws/things/+/shadow/delete/#",
      "source": "Pubsub",
      "target": "LocalMqtt"
    },
    "GetShadowLocalMqttToPubsub": {
      "topic": "$aws/things/+/shadow/get",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "GetShadowPubsubToLocalMqtt": {
      "topic": "$aws/things/+/shadow/get/#",
      "source": "Pubsub",
      "target": "LocalMqtt"
    },
    "UpdateShadowLocalMqttToPubsub": {
      "topic": "$aws/things/+/shadow/update",
      "source": "LocalMqtt",
      "target": "Pubsub"
    },
    "UpdateShadowPubsubToLocalMqtt": {
      "topic": "$aws/things/+/shadow/update/#",
      "source": "Pubsub",
      "target": "LocalMqtt"
    }
  }
}
```

## Interacción con las sombras de dispositivo de cliente en los componentes
<a name="interact-with-client-device-shadows"></a>

Puede desarrollar componentes personalizados que utilicen el servicio de sombra local para leer y modificar los documentos de sombra local de los dispositivos de cliente. Para obtener más información, consulte [Interacción con las sombras de los componentes](interact-with-shadows-in-components.md).

## Sincronice las sombras de los dispositivos cliente con AWS IoT Core
<a name="sync-client-device-shadows-with-iot-core"></a>

Puede configurar el componente de administrador de sombras para sincronizar los estados ocultos de los dispositivos cliente locales con AWS IoT Core ellos. Para obtener más información, consulte [Sincronice las sombras de los dispositivos locales con AWS IoT Core](sync-shadows-with-iot-core.md).