Interacción con las sombras de los componentes - AWS IoT Greengrass

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 con las sombras de los componentes

Puede desarrollar componentes personalizados, incluidos los componentes de la función de Lambda, que utilicen el servicio de sombra local para leer y modificar documentos de sombra locales y documentos de sombra de dispositivo de cliente.

Los componentes personalizados interactúan con el servicio de sombra local mediante las bibliotecas de IPC de AWS IoT Greengrass Core en el SDK para dispositivos con AWS IoT. El componente administrador de sombras habilita el servicio de sombra local en su dispositivo principal.

Para implementar el componente de administrador de sombras en un dispositivo principal de Greengrass, cree una implementación que incluya el componente aws.greengrass.ShadowManager.

nota

De forma predeterminada, la implementación del componente administrador de sombras solo permite las operaciones de sombras locales. Para permitir a AWS IoT Greengrass sincronizar la información sobre el estado de las sombras de dispositivos principales o de cualquier sombra de los dispositivos de cliente con los documentos de sombra en la nube correspondientes en AWS IoT Core, debe crear una actualización de configuración para el componente del administrador de sombras que incluya el parámetro synchronize. Para obtener más información, consulte Sincronización de las sombras de dispositivo locales con AWS IoT Core.

Recuperación y modificación de los estados de sombra

Las operaciones de IPC de sombra recuperan y actualizan la información sobre el estado de los documentos de sombra local. El componente administrador de sombras se encarga del almacenamiento de estos documentos de sombra en el dispositivo principal.

Cómo modificar los estados de sombra local
  1. Agregue políticas de autorización a la receta de su componente personalizado para permitir que el componente reciba mensajes sobre temas de sombra local.

    Para ver ejemplos de políticas de autorización, consulte Ejemplos de políticas de autorización de IPC de sombra local.

  2. Utilice las operaciones de IPC de sombras para recuperar y modificar la información sobre el estado de sombras. Para obtener más información sobre el uso de operaciones de IPC de sombras en el código de los componentes, consulte Interactúe con las sombras locales.

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.

Reacción a los cambios en el estado de sombra

Los componentes de Greengrass utilizan la interfaz local de publicación/suscripción para comunicarse en un dispositivo principal. Para permitir que un componente personalizado reaccione ante los cambios en el estado de sombra, puede suscribirse a los temas de publicación o suscripción local. Esto permite que el componente reciba mensajes sobre los temas de sombra local y, a continuación, actúe en función de esos mensajes.

Los temas de sombra local utilizan el mismo formato que los temas MQTT de sombra de dispositivo de AWS IoT. Para obtener más información sobre temas de sombras, consulte Temas MQTT de sombra de dispositivo en la Guía para desarrolladores de AWS IoT.

Reacción a los cambios en el estado de sombra local
  1. Agregue políticas de control de acceso a la receta de su componente personalizado para permitir que el componente reciba mensajes sobre temas de sombra local.

    Para ver ejemplos de políticas de autorización, consulte Ejemplos de políticas de autorización de IPC de sombra local.

  2. Para iniciar una acción personalizada en un componente, utilice las operaciones de IPC SubscribeToTopic para suscribirse a los temas de sombra sobre los que desee recibir mensajes. Para obtener más información sobre el uso de las operaciones de IPC de publicación o suscripción local en el código del componente, consulte Publicar/suscribir mensajes locales.

  3. Para invocar una función de Lambda, utilice la configuración del origen del evento para proporcionar el nombre del tema de sombra y especificar que se trata de un tema de publicación/suscripción local. Para obtener más información sobre la creación de componentes de la función de Lambda, consulte Ejecución de funciones de AWS Lambda.

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.