python - AWS Python Lambda 与 Oracle

标签 python oracle amazon-web-services lambda

我正在尝试使用 python 从 AWS Lambda 连接到 Oracle 数据库。我成功打包了cx_Oracle,但是环境没有找到依赖项。

我已经压缩了内容,其中包含 cx_Oracle.socx_Oracle-5.2.1-py2.7.egg-info(在 64 位 AWX Linux 上创建)。我还将 instantclient-basic-linux.x64-12.1.0.2.0.zip 中的文件添加到该 zip 文件中的 local/lib 中。

我得到的错误是

import cx_Oracle

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

我像这样动态更改 python 中的环境变量:

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 以import cx_Oracle开头

最佳答案

已解决。通过运行添加所有依赖项 ldd cx_Oracle.so| grep“=>/”| awk '{print $3}' | xargs -I '{}' cp -v '{}'/目的地 将目标中的所有文件添加到 lambda zip 中的 lib 文件夹

关于python - AWS Python Lambda 与 Oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37734748/

相关文章:

python - Pyspark 与 DBUtils

python - 了解 python 中的 Queue 模块(如何运行它)

python - 在 ubuntu 中为 python 和 c++ 集成 opencv 3.0.0 并使用 cmake 构建库

oracle - 在子句中使用Oracle表类型-编译失败

oracle - Oracle PL/SQL 中的游标

Java AWS MySQL 和 hibernate

python - SqlAlchemy 1.0.0 添加 'AND NULL' 以加入未定义外键的位置

mysql - 页面与范围与段与表空间

amazon-web-services - 创建具有多个 key 对的 ec2 实例

ios - 使用 AWS Mobile Hub 获得有效登录