AWS Python Lambda con Oracle

Estoy tratando de conectarme a una base de datos de Oracle de AWS Lambda usando python. Logré empaquetar cx_Oracle pero el entorno no encuentra las dependencias.

Había comprimido el contenido, que contenía cx_Oracle.so y cx_Oracle-5.2.1-py2.7.egg-info (creado en 64bit AWX Linux). También agregué los archivos de instantclient-basic-linux.x64-12.1.0.2.0.zip en local / lib en ese archivo zip.

El error que recibo es

 import cx_Oracle ImportError: libaio.so.1: cannot open shared object file: No such file or directory 

Cambio dinámicamente las variables de entorno en python así:

 oracledir = os.path.join(os.getcwd(), 'local', 'lib') libdir = os.environ['LD_LIBRARY_PATH'] + ":" + os.path.join(os.getcwd(), 'local', 'lib') command = 'LD_LIBRARY_PATH={} ORACLE_HOME={} python OracleWorker.py "{}"'.format(libdir, oracledir, args) subprocess.call(command, shell=True) 

OracleWorker.py comienza con la import cx_Oracle

Resuelto. Agregó todas las dependencias ejecutando ldd cx_Oracle.so| grep "=> /" | awk '{print $3}' | xargs -I '{}' cp -v '{}' /destination ldd cx_Oracle.so| grep "=> /" | awk '{print $3}' | xargs -I '{}' cp -v '{}' /destination ldd cx_Oracle.so| grep "=> /" | awk '{print $3}' | xargs -I '{}' cp -v '{}' /destination agregaron todos esos archivos en el destino a la carpeta lib en lambda zip