【发布时间】:2022-01-06 04:32:25
【问题描述】:
我正在使用 AWS Lambda 函数(在 Python 中)通过 cx_Oracle 库连接到 Oracle 数据库 (RDS)。但它给了我以下错误 - “DPI-1047:无法找到 64 位 Oracle 客户端库:“libclntsh.so:无法打开共享对象文件:没有这样的文件或目录”。
我遵循的步骤 -
- 创建了一个 python 虚拟环境并在 EC2 实例上下载了 cx_Oracle 库。
- 将下载的库上传到 S3 存储桶并使用它创建 Lambda 层
- 在 Lambda 函数中使用此层连接到 Oracle RDS
- 使用以下命令连接数据库 -
conn = cx_Oracle.connect(user="user-name", password="password", dsn="DB-Endpoint :1521/"数据库名称",encoding="UTF-8")
请帮我解决这个问题。
【问题讨论】:
-
您创建
libclntsh.so的精确度如何?你是针对 lambda linux 环境编译的吗? -
@Marcin - 我没有单独编译它。我添加了一个具有 cx_Oracle 库的 lambda 层。
-
在 stackoverflow 中搜索类似问题。
标签: python amazon-web-services aws-lambda cx-oracle