Integración con servicios y protocolos mediante conectores de Greengrass - AWS IoT Greengrass

Está viendo la documentación de AWS IoT Greengrass versión 1. AWS IoT Greengrass versión 2 es la última versión principal de AWS IoT Greengrass. Para obtener más información sobre el uso de AWS IoT Greengrass versión 2, consulte la Guía para desarrolladores de AWS IoT Greengrass V2

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.

Integración con servicios y protocolos mediante conectores de Greengrass

Esta característica está disponible para AWS IoT Greengrass Core v1.7 y versiones posteriores.

Los conectores de AWS IoT Greengrass son módulos precompilados que hacen que sea más eficaz interactuar con la infraestructura local, los protocolos de AWSdispositivos, y otros servicios en la nube. Mediante el uso de conectores, puede dedicar menos tiempo a aprender nuevos protocolos y APIs más tiempo a centrarse en la lógica que importa para su negocio.

En el siguiente diagrama se muestra dónde encajan los conectores en el AWS IoT Greengrass entorno de .


            Los conectores se conectan a dispositivos, servicios y recursos locales.

Muchos conectores utilizan mensajes de MQTT para comunicarse con dispositivos y funciones Greengrass Lambda del grupo o con AWS IoT y el servicio de sombra local. En el siguiente ejemplo, el conector Notificaciones de Twilio recibe mensajes MQTT de una función Lambda definida por el usuario, utiliza una referencia local de un secreto de AWS Secrets Manager y llama a la API de Twilio.


            Un conector recibe un mensaje MQTT de una función Lambda y llama a un servicio.

Para ver tutoriales que crean esta solución, consulte Introducción a los conectores de Greengrass (consola) y Introducción a los conectores de Greengrass (CLI).

Los conectores de Greengrass pueden ayudarle a ampliar las capacidades del dispositivo o crear dispositivos de una sola finalidad. Mediante el uso de conectores, puede:

  • Implementar una lógica de negocio reutilizable.

  • Interactuar con servicios locales y de nube, incluidos AWS y servicios de terceros.

  • Adquirir y procesar los datos del dispositivo.

  • Habilitar las llamadas de un dispositivo a otro con suscripciones de temas de MQTT y funciones Lambda definidas por el usuario.

AWS proporciona un conjunto de conectores de Greengrass que simplifican las interacciones con los servicios comunes y los orígenes de datos. Estos módulos preconfigurados, permiten escenarios para el registro y diagnóstico, reabastecimiento, procesamiento de datos industriales, alarma y mensajería. Para obtener más información, consulte Conectores de Greengrass proporcionados por AWS.

Requirements

Para utilizar conectores, tenga en cuenta estos puntos:

  • Cada conector que utilice tiene requisitos que debe cumplir. Estos requisitos pueden incluir la versión mínima del software AWS IoT Greengrass Core, los requisitos previos del dispositivo, los permisos necesarios y los límites. Para obtener más información, consulte Conectores de Greengrass proporcionados por AWS.

  • Un grupo de Greengrass solo puede contener una instancia configurada de un determinado conector. Sin embargo, puede utilizar la instancia en varias suscripciones. Para obtener más información, consulte Parámetros de configuración.

  • Cuando la creación de contenedores predeterminada para el grupo de Greengrass se establece en No container (Sin contenedor), los conectores del grupo deben ejecutarse sin creación de contenedores. Para buscar conectores compatibles con el modo Sin contenedor, consulte Conectores de Greengrass proporcionados por AWS.

Uso de conectores de Greengrass

Un conector es un tipo de componente de grupo. Al igual que otros componentes del grupo, como dispositivos y funciones Lambda definidas por el usuario, puede agregar conectores a los grupos, configurarlos e implementarlos en el AWS IoT Greengrass Core. Los conectores se ejecutan en el entorno de núcleo.

Puede implementar algunos conectores como aplicaciones independientes simples. Por ejemplo, el conector Device Defender lee las métricas del sistema del dispositivo del núcleo y las envía a AWS IoT Device Defender para su análisis.

Puede añadir otros conectores como componentes básicos en soluciones de mayor tamaño. La siguiente solución de ejemplo utiliza el Adaptador de protocolo Modbus-RTU conector para procesar mensajes de sensores y el Notificaciones de Twilio conector para iniciar mensajes de Twilio.


                Flujo de datos de Lambda la función al Adaptador de protocolo Modbus-RTU conector a la Lambda función al Notificaciones de Twilio conector a Twilio.

Las soluciones suelen incluir funciones Lambda definidas por el usuario que se colocan junto a los conectores y procesan los datos que el conector envía o recibe. En este ejemplo, la TempMonitor función recibe datos de Adaptador de protocolo Modbus-RTU, ejecuta alguna lógica de negocio y, a continuación, envía datos a Notificaciones de Twilio.

Para crear e implementar una solución, debe seguir este proceso general:

  1. Planificar el flujo de datos de alto nivel. Identificar los orígenes de datos, los canales de datos, los servicios, los protocolos y los recursos con los que necesita trabajar. En la solución de ejemplo, esto incluye los datos a través del protocolo Modbus RTU, el puerto de serie Modbus físico y Twilio.

  2. Identificar los conectores que se incluirán en la solución y añadirlos a su grupo. La solución de ejemplo utiliza Adaptador de protocolo Modbus-RTU y Notificaciones de Twilio. Para ayudarle a detectar los conectores aplicables a su situación y para ver más información acerca de sus requisitos individuales, consulte Conectores de Greengrass proporcionados por AWS.

  3. Identificar si las funciones Lambda definidas por el usuario, dispositivos o recursos son necesarios y, a continuación, crearlas y añadirlas al grupo. Esto podría incluir funciones que contienen lógica de negocio o procesar datos en un formato requerido por otra entidad en la solución. La solución de ejemplo utiliza funciones para enviar solicitudes de Modbus RTU e iniciar notificaciones de Twilio. También incluye un recurso de dispositivo local para el puerto de serie Modbus RTU y un recurso de secreto para el token de autenticación de Twilio.

    nota

    Los recursos de secreto hacen referencia a contraseñas, tokens y otros secretos de AWS Secrets Manager. Los conectores y las funciones Lambda pueden usar secretos para autenticar con servicios y aplicaciones. De forma predeterminada, AWS IoT Greengrass puede obtener acceso a los secretos cuyos nombres empiezan por greengrass-". Para obtener más información, consulte Implementación de secretos en el núcleo de AWS IoT Greengrass.

  4. Crear las suscripciones que permiten que las entidades de la solución intercambien mensajes MQTT. Si un conector se utiliza en una suscripción, el conector y el origen o destino del mensaje deben utilizar la sintaxis de tema predefinida compatible con el conector. Para obtener más información, consulte Entradas y salidas.

  5. Implementar el grupo en el núcleo de Greengrass.

Para obtener información sobre cómo crear e implementar un conector, consulte los siguientes tutoriales:

Parámetros de configuración

Muchos conectores proporcionan parámetros que permiten personalizar su comportamiento o su salida. Estos parámetros se utilizan durante la inicialización, el tiempo de ejecución o en otros momentos en el ciclo de vida del conector.

Los tipos de parámetros y su uso varían según el conector. Por ejemplo, el conector SNS tiene un parámetro que configura el tema de SNS predeterminado, y Device Defender tiene un parámetro que configura la frecuencia de muestreo de los datos.

Una versión de grupo puede contener varios conectores, pero solo una instancia de un determinado conector a la vez. Esto significa que cada conector del grupo solamente puede tener una configuración activa. Sin embargo, la instancia del conector puede utilizarse en diferentes suscripciones del grupo. Por ejemplo, puede crear suscripciones que permitan que muchos dispositivos envíen datos al conector Kinesis Firehose

Parámetros utilizados para acceder a recursos de grupo

Los conectores de Greengrass utilizan recursos de grupo para obtener acceso al sistema de archivos, puertos, periféricos y otros recursos locales en el dispositivo principal. Si un conector requiere acceso a un recurso de grupo, proporciona parámetros de configuración relacionados.

Los recursos de grupo incluyen:

  • Recursos locales. Los directorios, archivos, puertos, pines y periféricos que están presentes en el dispositivo del núcleo de Greengrass.

  • Recursos de aprendizaje automático. Los modelos de aprendizaje automático que se utilizan en la nube y se implementan en el núcleo para la inferencia local.

  • Recurso de secreto. Locales, copias cifradas de contraseñas, claves, tokens o texto arbitrario de AWS Secrets Manager. Los conectores pueden acceder de manera segura a estos secretos locales y utilizarlos para autenticarse en los servicios o en la infraestructura local.

Por ejemplo, los parámetros para Device Defender habilitan el acceso a las métricas del sistema en el directorio de host /proc y los parámetros de Notificaciones de Twilio habilitan el acceso a un token de autenticación Twilio localmente almacenado.

Actualización de parámetros de conectores

Los parámetros se configuran cuando el conector se añade a un grupo de Greengrass. Puede cambiar los valores de los parámetros después de añadir un conector.

  • En la consola: en la página de configuración de grupo, abra Connectors (Conectores) y desde el menú contextual del conector, seleccione Edit (Editar).

    nota

    Si el conector utiliza un recurso de secreto que más adelante cambia para hacer referencia a otro secreto, debe editar los parámetros del conector y confirmar el cambio.

  • En la API: cree otra versión del conector que defina la nueva configuración.

    La API de AWS IoT Greengrass usa versiones para administrar los grupos. Las versiones son inmutables, por lo que para añadir o cambiar componentes del grupo (por ejemplo, los dispositivos, las funciones y los recursos del grupo), debe crear versiones de componentes nuevos o actualizados. A continuación, debe crear e implementar una versión del grupo que contenga la versión de destino de cada componente.

Después de realizar cambios en la configuración del conector, debe implementar el grupo para propagar los cambios en el núcleo.

Entradas y salidas

Muchos conectores de Greengrass pueden comunicarse con otras entidades enviando y recibiendo mensajes MQTT. Esta comunicación MQTT se controla mediante suscripciones que permiten a un conector intercambiar datos con las funciones Lambda, los dispositivos y otros conectores dentro del grupo de Greengrass, o con AWS IoT y el servicio de sombra local. Para permitir esta comunicación, debe crear suscripciones en el grupo al que pertenece el conector. Para obtener más información, consulte Suscripciones administradas en el flujo de trabajo de mensajería de MQTT.

Los conectores pueden ser suscriptores de mensajes, publicadores de mensajes o ambos. Cada conector define los temas de MQTT a los que se suscribe o en los que publica. Estos temas predefinidos deben utilizarse en las suscripciones en las que el conector sea un origen de mensaje o destino de mensaje. Para ver tutoriales con pasos para configurar suscripciones para un conector, consulte Introducción a los conectores de Greengrass (consola) y Introducción a los conectores de Greengrass (CLI).

nota

Muchos conectores también disponen de modos integrados de comunicación para interactuar con servicios locales o en la nube. Estos varían según el conector y podrían requerir configurar parámetros o agregar permisos al rol de grupo. Para obtener información sobre los requisitos de los conectores, consulte Conectores de Greengrass proporcionados por AWS.

Temas de entrada

La mayoría de los conectores reciben datos de entrada sobre temas de MQTT. Algunos conectores se suscriben a varios temas para los datos de entrada. Por ejemplo, el conector Transmisión en serie admite dos temas:

  • serial/+/read/#

  • serial/+/write/#

Para este conector, las solicitudes de lectura y escritura se envían al tema correspondiente. Al crear las suscripciones, asegúrese de que se va a utilizar el tema que se adapte a su implementación.

Los caracteres + y # en los ejemplos anteriores son comodines. Estos comodines permiten que los suscriptores reciban mensajes sobre varios temas y que los editores personalicen los temas que publican.

  • El comodín + puede aparecer en cualquier lugar de la jerarquía de temas. Se puede sustituir por un elemento de la jerarquía.

    Por ejemplo, en el caso del tema sensor/+/input, los mensajes se pueden publicar en los temas sensor/id-123/input, pero no en sensor/group-a/id-123/input.

  • El comodín # puede aparecer solo al final de la jerarquía de temas. Se puede sustituir por cualquier número de elementos de la jerarquía, incluso ninguno.

    Por ejemplo, en el caso del tema sensor/#, los mensajes se pueden publicar en sensor/, sensor/id-123y sensor/group-a/id-123, pero no en sensor.

Los caracteres comodín solo son válidos al suscribirse a temas. Los mensajes no se pueden publicar en temas que contengan comodines. Consulte la documentación del conector para obtener más información sobre los requisitos de su tema de entrada o salida. Para obtener más información, consulte Conectores de Greengrass proporcionados por AWS.

Soporte de creación de contenedores

De forma predeterminada, la mayoría de los conectores se ejecutan en el núcleo de Greengrass en un entorno de tiempo de ejecución aislado administrado por AWS IoT Greengrass. Estos entornos de tiempo de ejecución, denominados contenedores, proporcionan aislamiento entre los conectores y el sistema host, que ofrece más seguridad para el host y el conector.

Sin embargo, esta creación de contenedores de Greengrass no se admite en algunos entornos, como cuando se ejecuta AWS IoT Greengrass en un contenedor de Docker o en kernels de Linux más antiguos sin grupos de control. En estos entornos, los conectores deben ejecutarse en modo Sin contenedor. Para buscar conectores compatibles con el modo Sin contenedor, consulte Conectores de Greengrass proporcionados por AWS. Algunos conectores se ejecutan en este modo de forma nativa, y algunos conectores le permiten establecer el modo de aislamiento.

También puede establecer el modo de aislamiento en No container (Sin contenedor) en entornos que admiten la creación de contenedores de Greengrass, pero recomendamos utilizar el modo de contenedor de Greengrass cuando sea posible.

nota

La configuración de creación de contenedores predeterminada para el grupo de Greengrass no se aplica a los conectores.

Actualización de versiones de los conectores

Los proveedores de conectores pueden lanzar nuevas versiones de un conector que agregan características, solucionan problemas o mejoran el rendimiento. Para obtener información sobre las versiones disponibles y los cambios relacionados, consulte la documentación de cada conector.

En el consola de AWS IoT, puede buscar nuevas versiones para los conectores de su grupo Greengrass.

  1. En consola de AWS IoT, en el panel de navegación, elija Greengrass, Classic (V1), Groups.

  2. En Greengrass groups (Grupos de Greengrass), elija su grupo de .

  3. Elija Connectors (Conectores) para mostrar los conectores en el grupo.

    Si el conector tiene una nueva versión, aparece un botón Available (Disponible) en la columna Upgrade (Actualizar).

  4. Para actualizar la versión del conector:

    1. En la página Connectors (Conectores) en la columna Upgrade (Actualizar) seleccione Available (Disponible). Se abre la página Upgrade connector (Actualizar conector) y muestra la configuración actual de los parámetros, si procede.

      Elija la nueva versión del conector, defina los parámetros según sea necesario y, a continuación, elija Upgrade (Actualizar).

    2. En la página Subscriptions (Suscripciones), añada nuevas suscripciones al grupo para sustituir las que utilicen el conector como origen o destino. A continuación, elimine las suscripciones antiguas.

      Las suscripciones hacen referencia a conectores por versión, por lo que no son válidos si cambia la versión del conector en el grupo.

    3. En el menú Actions (Acciones), elija Deploy (Implementar) para implementar los cambios en el núcleo.

Para actualizar un conector desde la API de AWS IoT Greengrass, cree e implemente una versión de grupo que incluya el conector actualizado y las suscripciones. Utilice el mismo proceso que al agregar un conector a un grupo. Para ver los pasos detallados que muestran cómo utilizar la AWS CLI para configurar e implementar un conector Notificaciones de Twilio de ejemplo, consulte Introducción a los conectores de Greengrass (CLI).

Registro de conectores

Los conectores de Greengrass contienen funciones Lambda que escriben eventos y errores en los registros de Greengrass. En función de su configuración del grupo, los registros se escriben en CloudWatch Logs, el sistema de archivos local o ambos. Los registros de los conectores incluyen el ARN de la función correspondiente. El ARN del siguiente ejemplo corresponde al conector Kinesis Firehose

arn:aws:lambda:aws-region:account-id:function:KinesisFirehoseClient:1

La configuración de registro predeterminada escribe los registros de nivel de información en el sistema de archivos mediante la siguiente estructura de directorios:

greengrass-root/ggc/var/log/user/región/aws/function-name.log

Para obtener más información acerca del registro de Greengrass, consulte Monitorización con registros de AWS IoT Greengrass.