Crear y empaquetar una función de Lambda - AWS IoT Greengrass

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.

 

  1. 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.

  2. 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 en examples\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 de hello/world.

    • La carpeta greengrasssdk. Este es el SDK.

  3. Copie la carpeta greengrasssdk en la carpeta HelloWorld que contiene greengrassHelloWorld.py.

  4. Para crear el paquete de implementación de la función de Lambda, guarde greengrassHelloWorld.py y la carpeta greengrasssdk en un archivo zip comprimido denominado hello_world_python_lambda.zip. El archivo py y la carpeta greengrasssdk deben estar en la raíz del directorio.

    Captura de pantalla que muestra el contenido comprimido de hello_word_python_lambda.zip.

    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, ejecutando sudo 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.

  5. Abra la consola de Lambda; y elija Crear función.

  6. Elija Author from scratch (Crear desde cero).

  7. 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.

  8. Cargue su paquete de implementación de la función de Lambda:

    1. En la pestaña Código, en Código fuente, seleccione Cargar desde. En el menú desplegable, seleccione un archivo .zip..

      La carga del menú desplegable con el archivo .zip resaltado.
    2. Seleccione Cargar y, a continuación, elija su paquete de implementación hello_world_python_lambda.zip. A continuación, elija Guardar.

    3. 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.

      La sección "Configuración de tiempo de ejecución" con el campo "Tiempo de ejecución" ajustado a "Python 3.7" y el campo "Manejador" ajustado a "greengrassHelloWorld.function_handler".
    4. 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.

  9. Publica la función de Lambda:

    1. En el menú Acciones de la parte superior de la página, elija Publicar nueva versión.

      Captura de pantalla del menú Actions (Acciones) con Publish new version (Publicar nueva versión) resaltado.
    2. En Version description (Descripción de versión), escriba First version y, a continuación, elija Publish (Publicar).

      Captura de pantalla con el campo Version description (Descripción de versión) establecido en First version (Primera versión) y el botón Publish (Publicar) resaltado.
  10. 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.

    1. En el menú Acciones de la parte superior de la página, seleccione Crear alias.

      Captura de pantalla del menú Actions (Acciones) establecido en Create alias (Crear alias).
    2. Denomine al alias GG_HelloWorld, establezca la versión en 1 (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.

       

      Captura de pantalla de Crear un nuevo alias con el campo Nombre establecido en GG_HelloWorld, y el campo Versión establecido en 1.