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.
Sincronización de las sombras de dispositivo locales con AWS IoT Core
El componente administrador de sombras permite a AWS IoT Greengrass sincronizar los estados de sombra de dispositivo local con AWS IoT Core. Debe modificar la configuración del componente administrador de sombras para incluir el parámetro de configuración synchronization y especificar los nombres de los objetos AWS IoT y las sombras que desea sincronizar.
Al configurar el administrador de sombras para que sincronice las sombras, sincroniza todos los cambios de estado de las sombras especificadas, independientemente de si los cambios se producen en documentos de sombra locales o en documentos de sombra en la nube.
También puede especificar si el componente administrador de sombras sincroniza las sombras en tiempo real o en intervalos periódicos. De forma predeterminada, el componente administrador de sombras sincroniza las sombras en tiempo real, por lo que el dispositivo principal envía y recibe actualizaciones de sombra desde y hacia AWS IoT Core en el momento que se produce cada actualización. Puede configurar intervalos periódicos para reducir el uso de ancho de banda y los cargos.
Temas
Requisitos previos
Para sincronizar las sombras locales con AWS IoT Core, debe configurar la política AWS IoT del dispositivo principal de Greengrass para permitir las siguientes acciones de política de sombra AWS IoT Core.
-
iot:GetThingShadow -
iot:UpdateThingShadow -
iot:DeleteThingShadow
Para obtener más información, consulte los siguientes temas:
-
Acciones de políticas AWS IoT Core en la Guía para desarrolladores de AWS IoT
-
AWS IoT Política mínima para los dispositivos AWS IoT Greengrass V2 principales
Configuración del componente administrador de sombras
El administrador de sombras necesita una lista de asignaciones de nombres de sombras, con el fin de sincronizar la información sobre el estado de las sombras en los documentos de sombras locales con los documentos de sombras en la nube en AWS IoT Core.
Para sincronizar los estados de sombra, cree una implementación que incluya el componente aws.greengrass.ShadowManager y especifique las sombras que desea sincronizar en el parámetro de configuración synchronize de la configuración del administrador de sombras en la implementación.
nota
Para permitir que un dispositivo principal interactúe con las sombras de dispositivos de cliente, también debe configurar e implementar el componente puente MQTT. Para obtener más información, consulte Habilitación del administrador de sombras para que se comunique con los dispositivos de cliente.
El siguiente ejemplo de actualización de configuración indica al componente administrador de sombras que sincronice las siguientes sombras con AWS IoT Core:
-
La sombra clásica para el dispositivo principal
-
La
MyCoreShadowcon nombre del dispositivo principal -
La sombra clásica para un objeto del IoT llamada
MyDevice2 -
Las sombras con nombre
MyShadowAyMyShadowBpara un objeto del IoT llamadaMyDevice1
Esta actualización de configuración especifica sincronizar las sombras con AWS IoT Core en tiempo real. Si utiliza la versión 2.1.0 o posterior del administrador de sombras, puede configurar el componente administrador de sombras para que sincronice las sombras a intervalos periódicos. Para configurar esta característica, cambie la estrategia de sincronización a periodic y especifique un delay en segundos para el intervalo. Para obtener más información, consulte el parámetro de configuración de la estrategia del componente administrador de sombras.
Esta actualización de configuración especifica que las sombras se sincronicen en ambas direcciones entre AWS IoT Core y el dispositivo principal. Si utiliza la versión 2.2.0 o posterior del administrador de sombras, puede configurar el componente administrador de sombras para que sincronice las sombras en una dirección. Para configurar esta característica, cambie la sincronización direction a deviceToCloud o cloudToDevice. Para obtener más información, consulte el parámetro de configuración de la dirección del componente administrador de sombras.
{ "strategy": { "type": "realTime" }, "synchronize": { "coreThing": { "classic": true, "namedShadows": [ "MyCoreShadow" ] }, "shadowDocuments": [ { "thingName": "MyDevice1", "classic": false, "namedShadows": [ "MyShadowA", "MyShadowB" ] }, { "thingName": "MyDevice2", "classic": true, "namedShadows": [ ] } ], "direction": "betweenDeviceAndCloud" } }
Sincronización de sombras locales
Cuando el dispositivo principal de Greengrass está conectado a la nube AWS IoT, el administrador de sombras realiza las siguientes tareas para las sombras que especifique en la configuración del componente. El comportamiento depende de la opción de configuración especificada en la dirección de sincronización de sombras. De forma predeterminada, el administrador de sombras usa la opción betweenDeviceAndCloud para sincronizar las sombras en ambas direcciones. Si utiliza la versión 2.2.0 o posterior del administrador de sombras, puede configurar el dispositivo principal para que sincronice las sombras en una dirección, que puede ser cloudToDevice o deviceToCloud.
-
Si la configuración de la dirección de sincronización de sombras es
betweenDeviceAndCloudocloudToDevice, el administrador de sombras recupera la información de estado notificada del documento de sombra en la nube en AWS IoT Core. A continuación, actualiza los documentos de sombras almacenados localmente para sincronizar el estado del dispositivo. -
Si la configuración de la dirección de sincronización de sombra es
betweenDeviceAndCloudodeviceToCloud, el administrador de sombras publica el estado actual del dispositivo en el documento de sombra en la nube.
Comportamiento conflictivo en la combinación de sombras
En algunos casos, por ejemplo, cuando el dispositivo principal está desconectado de Internet, es posible que una sombra cambie en el servicio local y en la nube AWS IoT antes de que el administrador de sombras sincronice los cambios. Como resultado, los estados deseados y notificados difieren entre el servicio de sombras local y en la nube AWS IoT
Cuando el administrador de sombras sincroniza la sombra, fusiona los cambios de acuerdo con el siguiente comportamiento:
-
Si utiliza una versión del administrador de sombras anterior a la versión 2.2.0, o si especifica la dirección de sincronización de sombras
betweenDeviceAndCloud, se aplica el siguiente comportamiento:-
Cuando se produce un conflicto de combinación en el estado deseado de una sombra, el administrador de sombras sobrescribe la sección conflictiva del documento local con el valor de la nube AWS IoT.
-
Cuando se produce un conflicto de combinación en el estado informado de una sombra, el administrador de sombras sobrescribe la sección conflictiva de la sombra en la nube AWS IoT con el valor del documento de sombra local.
-
-
Al especificar la dirección de sincronización de las sombras
deviceToCloud, el administrador de sombras sobrescribe la sección conflictiva de la sombra en la nube AWS IoT con el valor del documento de sombras locales. -
Al especificar la dirección de sincronización de las sombras
cloudToDevice, el administrador de sombras sobrescribe la sección conflictiva del documento de sombras locales con el valor en la nube AWS IoT.