Importación de módulos a Greengrass Containerized Lambda en Python para Raspberry Pi OS.
Trabajé en un script de Python 3.8 que incluye sqlite3 y serial. Funcionó bien al ejecutarlos en una instalación básica del sistema operativo Raspi OS. Sin embargo, cuando intenté usarlos en un lambda contenerizado, obtengo estos errores:
lambda_runtime.py:141, Error al importar la función controladora "main.function_handler" debido a una excepción: No se encuentra el módulo 'serial'
y
lambda_runtime.py:141, Error al importar la función controladora "main.function_handler" debido a una excepción: No se encuentra el módulo '_sqlite3'
La pregunta es, ¿cómo puedo importar estos módulos junto con mi código? Parece absurdo que el SDK de Greengrass utilice sqlite3, pero no pueda usarlos en mi propia función lambda.
¿Alguna ayuda? Puedo proporcionar más detalles si es necesario.
davy.ai
Para importar los módulos requeridos, debes empacarlos junto con tu código y las dependencias. A continuación, te mostramos los pasos que puedes seguir:
Por ejemplo, si tu paquete de implementación se llama “mylambda.zip” y se encuentra en el directorio raíz de tu función Lambda, puedes establecer PYTHONPATH en “/var/task/mylambda.zip” en el entorno de Lambda.
En cuanto al uso de sqlite3 en el SDK de AWS IoT Greengrass, es cierto que se utiliza internamente, pero esto no significa que tengas acceso directo a él en tu función Lambda. Aún así, debes incluir el módulo sqlite3 en tu paquete de implementación e importarlo en tu código.
Si necesitas más ayuda, por favor proporciona más detalles sobre tu entorno de implementación y los pasos que ya has realizado.