Aviso de fin de soporte: el 7 de octubre de 2026, AWS suspenderemos el soporte para AWS IoT Greengrass Version 1. Después del 7 de octubre de 2026, ya no podrá acceder a los AWS IoT Greengrass V1 recursos. Para obtener más información, visita Migrar desde AWS IoT Greengrass Version 1.
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.
Prueba de funciones de Lambda de larga duración
Una función Lambda de larga duración se inicia automáticamente cuando se inicia AWS IoT Greengrass el núcleo y se ejecuta en un único contenedor (o sandbox). Las variables y la lógica de procesamiento previo que se definen fuera del controlador de la función se conservan para cada invocación del controlador de la función. Las diversas invocaciones del controlador de la función se ponen en cola hasta que se hayan ejecutado las invocaciones anteriores.
El código greengrassHelloWorldCounter.py utilizado en este módulo define una variable my_counter fuera del controlador de la función.
nota
Puedes ver el código en la AWS Lambda consola o en el AWS IoT Greengrass Core SDK para Python
En este paso, se crean suscripciones que permiten la función Lambda y AWS IoT el intercambio de mensajes MQTT. A continuación, implementará el grupo y probará la función.
-
En la página de configuración de grupo, elija Suscripciones y, a continuación, elija Agregar.
-
En Tipo de fuente, elija Función Lambda y, a continuación, HelloWorldGreengrass_ _Counter.
-
En Tipo de destino, elija Servicio y, a continuación, Nube de IoT.
-
En Topic filter (Filtro de temas), escriba
hello/world/counter. -
Elija Crear una suscripción.
Esta suscripción única va en una sola dirección: de la función
Greengrass_HelloWorld_CounterLambda a. AWS IoT Para invocar o activar esta función de Lambda desde la nube, deberá crear una suscripción en la dirección contraria. -
Siga los pasos del 1 al 5 para añadir otra suscripción que utilice los siguientes valores. Esta suscripción permite que la función de Lambda reciba mensajes de AWS IoT. Esta suscripción se utiliza cuando se envía un mensaje desde la AWS IoT consola que invoca la función.
-
Para el origen, elija Servicios y después Nube de IoT.
-
Para el objetivo, elija la función Lambda y, a continuación, HelloWorldGreengrass_ _Counter.
-
En el filtro de temas, escriba
hello/world/counter/trigger.
La extensión
/triggerse utiliza en este filtro de temas porque ha creado dos suscripciones y no deben interferir entre sí. -
Asegúrese de que el daemon de Greengrass esté en ejecución, tal y como se describe en Implementación de configuraciones de nube en un dispositivo central.
-
En la página de configuración de grupo, elija Implementar.
-
Una vez completada la implementación, regrese a la página de inicio de la AWS IoT consola y elija Probar.
-
Configure los siguientes campos:
-
Para Subscription topic (Tema de suscripción), escriba
hello/world/counter. -
En Quality of Service (Calidad del servicio), seleccione 0.
-
En MQTT payload display (Visualización de la carga de MQTT), seleccione Display payloads as strings (Mostrar cargas como cadenas).
-
-
Elija Suscribirse.
A diferencia de la primera parte de este módulo, no debería ver ningún mensaje después de suscribirse a
hello/world/counter. Esto se debe a que el código degreengrassHelloWorldCounter.pyque se publica en el temahello/world/counterestá dentro del controlador de la función, que únicamente se ejecuta cuando se invoca la función.En este módulo, configuró la función de Lambda de
Greengrass_HelloWorld_Counterpara que se invocara al recibir un mensaje de MQTT sobre el temahello/world/counter/trigger.La suscripción Greengrass_ HelloWorld _Counter to IoT Cloud permite a la función enviar mensajes AWS IoT sobre el tema.
hello/world/counterLa suscripción IoT Cloud to Greengrass_ HelloWorld _Counter permite enviar mensajes AWS IoT a la función sobre el tema.hello/world/counter/trigger -
Para probar el ciclo de vida de larga duración, invoque la función de Lambda publicando un mensaje en el tema
hello/world/counter/trigger. Puede utilizar el mensaje predeterminado.
nota
La función
Greengrass_HelloWorld_Counteromite el contenido de los mensajes recibidos. Simplemente ejecuta el código defunction_handler, que envía un mensaje al temahello/world/counter. Puedes revisar este código desde el AWS IoT Greengrass Core SDK para Pythonen adelante GitHub.
Cada vez que se publica un mensaje en el tema hello/world/counter/trigger, la variable my_counter se incrementa. Este recuento de invocaciones se muestra en los mensajes enviados de la función de Lambda. Como el controlador de funciones incluye un ciclo de reposo de 20 segundos (time.sleep(20)), al activarlo repetidamente, se ponen en cola las respuestas del núcleo. AWS IoT Greengrass