AWS IoT Greengrass Version 1 entró en la fase de vida útil prolongada el 30 de junio de 2023. Para obtener más información, consulte la política de mantenimiento de AWS IoT Greengrass V1 Después de esta fecha, AWS IoT Greengrass V1 no se publicarán actualizaciones que proporcionen funciones, mejoras, correcciones de errores o parches de seguridad. Los dispositivos que se ejecuten AWS IoT Greengrass V1 no se verán afectados y seguirán funcionando y conectándose a la nube. Le recomendamos encarecidamente que migre a AWS IoT Greengrass Version 2, ya que añade importantes funciones nuevas y es compatible con plataformas adicionales.
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.
Crear y empaquetar una función de Lambda
La función de Lambda de Python de ejemplo de este módulo utiliza el SDK AWS IoT Greengrass Core de Python para publicar mensajes de MQTT.
En este paso:
-
Descargue el SDK de AWS IoT Greengrass Core para Python en su equipo (no en el dispositivo de AWS IoT Greengrass).
-
Creará un paquete de implementación de funciones de Lambda que contiene código de característica y dependencias.
-
Utilizará la consola de Lambda para crear una función de Lambda y cargar el paquete de implementación.
-
Publicará una versión de la función de Lambda y creará un alias que apunte a la versión.
Para completar este módulo, Python 3.7 debe estar instalado en su dispositivo principal.
-
Desde la página de descargas del Core SDK AWS IoT Greengrass, descargue el SDK AWS IoT Greengrass básico para Python en su ordenador.
-
Descomprimir el paquete descargado para obtener el código de la función de Lambda y el SDK.
La función de Lambda de este módulo utiliza:
-
El archivo
greengrassHelloWorld.py
enexamples\HelloWorld
. Este es el código de la función de Lambda. Cada cinco segundos, la característica publica uno de los dos mensajes posibles en el tema dehello/world
. -
La carpeta
greengrasssdk
. Este es el SDK.
-
-
Copie la carpeta
greengrasssdk
en la carpetaHelloWorld
que contienegreengrassHelloWorld.py
. -
Para crear el paquete de implementación de la función de Lambda, guarde
greengrassHelloWorld.py
y la carpetagreengrasssdk
en un archivozip
comprimido denominadohello_world_python_lambda.zip
. El archivopy
y la carpetagreengrasssdk
deben estar en la raíz del directorio.En sistemas de tipo UNIX (incluido el terminal de Mac), puede utilizar el siguiente comando para empaquetar el archivo y la carpeta:
zip -r hello_world_python_lambda.zip greengrasssdk greengrassHelloWorld.py
nota
En función de la distribución, es posible que tenga que instalar
zip
primero (por ejemplo, ejecutandosudo apt-get install zip
). El comando de instalación podría ser diferente en su distribución.Ya está listo para crear la función de Lambda; y cargar el paquete de implementación.
-
Abra la consola de Lambda; y elija Crear función.
-
Elija Author from scratch (Crear desde cero).
-
Asigne el nombre
Greengrass_HelloWorld
a la característica y establezca los demás campos como se indica a continuación:-
En Runtime (Tiempo de ejecución), elija Python 3.7.
-
En Permisos, mantenga la configuración predeterminada. Esto crea un rol de ejecución que otorga permisos Lambda básicos. AWS IoT Greengrass no utiliza este rol.
Elija Crear función.
-
-
Cargue su paquete de implementación de la función de Lambda:
-
En la pestaña Código, en Código fuente, seleccione Cargar desde. En el menú desplegable, seleccione un archivo .zip..
-
Seleccione Cargar y, a continuación, elija su paquete de implementación
hello_world_python_lambda.zip
. A continuación, elija Guardar. -
En la pestaña Código de la función, en Configuración de tiempo de ejecución, elija Editar y, a continuación, introduzca los siguientes valores.
-
En Runtime (Tiempo de ejecución), elija Python 3.7.
-
En Handler (Controlador), escriba
greengrassHelloWorld.function_handler
.
-
-
Seleccione Save.
nota
El botón de prueba de la consola de AWS Lambda no funciona con esta función. El SDK AWS IoT Greengrass Core no contiene los módulos necesarios para ejecutar las funciones de Lambda de Greengrass de forma independiente en la consola AWS Lambda. Estos módulos (por ejemplo,
greengrass_common
) se suministran a las funciones una vez desplegados en el núcleo de Greengrass.
-
-
Publica la función de Lambda:
-
En el menú Acciones de la parte superior de la página, elija Publicar nueva versión.
-
En Version description (Descripción de versión), escriba
First version
y, a continuación, elija Publish (Publicar).
-
-
Cree un alias para la versión de la función de Lambda:
nota
Los grupos de Greengrass pueden hacer referencia a una función de Lambda por versión o alias (recomendado). El uso de un alias facilita la gestión de las actualizaciones del código porque no tiene que cambiar la tabla de suscripción o la definición del grupo cuando se actualiza el código de la función. En su lugar, basta con apuntar el alias a la nueva versión de la función.
-
En el menú Acciones de la parte superior de la página, seleccione Crear alias.
-
Denomine al alias
GG_HelloWorld
, establezca la versión en1
(que corresponde con la versión que acaba de publicar) y, a continuación, elija Guardar.nota
AWS IoT Greengrass no admite alias de Lambda; para versiones de $LATEST.
-