Cómo instalar pymysql en AWS lambda

He buscado aquí y aquí mientras intentaba averiguar cómo hacer funcionar pymysql en AWS lambda. Los ejemplos que he visto hasta ahora son extremadamente complejos, y con el tutorial de GitHub llegué hasta IAM antes de comenzar a encontrar errores de permisos que no sabía cómo resolver.

Literalmente, todo lo que quiero hacer es llamar a import pymysql dentro de la plantilla de consola lambda de AWS pre-construida.

Parece un problema simple, pero me cuesta mucho encontrar un trabajo claro y paso a paso sobre cómo hacer que las nuevas dependencias funcionen para mi función lambda. Lo ideal sería que el ejemplo no lo hiciera a través de AWS CLI, ya que aparentemente hay una opción de consola y esto parece que le quitaría parte del dolor de cabeza del proceso.

Aclamaciones,

Aaron

Me enfrentaba a un problema similar con la biblioteca de Redis python. Sigo las mismas instrucciones de documentación que mencionaste en tu segundo enlace.

Aquí hay un fragmento de ejemplo para su referencia:

Cree el nuevo directorio MyPythonLambda y coloque MyPythonLambda.py en el mismo.

Supongamos que MyPythonLambda / MyPythonLambda.py es la lambda principal que contiene el controlador.

  cd MyPythonLambda/ pip install redis -t . zip -r MyPythonLambda.zip * 

Cargar / importar zip en la creación lambda desde S3 o su sistema de archivos local.

Creo que necesitas crear un archivo zip de manera similar que contenga tu biblioteca mysql de python.

TheYoungSoul tiene un fantástico ejemplo de YouTube de cómo hacer esto paso a paso. Una vez que seguí estas instrucciones, esto fue bastante fácil de hacer.

Pasos:

  1. Escriba una versión localmente comprobable de la rutina que deseo implementar en lambda y llame a esta función main.py main.py tiene la función lambda_handler dentro de ella, que tiene la estructura básica def lambda_handler(event, context): ...

  2. Use el script create_deployment.py , disponible en su repository, junto con create_deployment.py para crear su archivo zip de implementación. Tenga en cuenta que si está usando una Mac y estos errores en el primer bash pueden necesitar hacer esto .

  3. Una vez que haya ejecutado un ejemplo localmente comprobable, cree su función lambda en AWS y, en lugar de escribir desde cero, seleccione la opción del menú de la consola para cargar un archivo .zip .

  4. Asegúrese de crear una función personalizada que tenga acceso a los recursos RDS y asegúrese de colocar la base de datos con la que desea conectarse en el mismo grupo de VPC. Al configurar su función, especifique que desea que su función lambda tenga acceso VPC.