【问题标题】:How to make an Oracle Database connection from an AWS Lambda function (Python)如何从 AWS Lambda 函数 (Python) 建立 Oracle 数据库连接
【发布时间】:2018-11-07 01:03:16
【问题描述】:

如何为 AWS Lamba 函数构建上传包以连接到 Oracle RDS 数据库? lambda 语言是 Python 3.6。我的开发环境是 Windows NOT linux。

当我尝试时,我得到了错误:

DPI-1047: 64-bit Oracle Client library cannot be loaded: "libaio.so.1: cannot open shared object file: No such file or directory

这很奇怪,因为据我了解,libaio.so 是 amazon linux 系统的一部分,所以应该找到 libaio.so 的正确版本。

到目前为止我所尝试的

我执行以下步骤来构建我的 lambda 包:

  1. 部署 Oracle Instant Client,Basic Lite for Linux x64,版本 18.3 进入包目录/lib
  2. 将cx_Oracle.so(来自pypi网站)部署到包目录/
  3. 配置tnsnames.ora并将其部署到包目录/
  4. 在lambda中,确保环境变量LD_LIBRARY_PATH包含/lib和环境变量TNS_ADMIN指向目录/

这里是 python 代码的片段,在 lambda 中实现这一点:

oraclePath = os.environ['LAMBDA_TASK_ROOT'] + '/lib'
if oraclePath not in os.environ['LD_LIBRARY_PATH'].split(':'):
  os.environ['LD_LIBRARY_PATH'] = oraclePath + ':' + os.environ['LD_LIBRARY_PATH']
if ('TNS_ADMIN' not in os.environ) or (os.environ['TNS_ADMIN'] != os.environ['LAMBDA_TASK_ROOT']):
  os.environ['TNS_ADMIN'] = os.environ['LAMBDA_TASK_ROOT']
  1. 在 lib 目录中,将libclntsh.so.18.1 覆盖复制到libclntsh.solibocci.solibclntshcore.so 也是如此

其他人提出的不适合我的解决方案

这里有两个类似的 SO 问题的答案对我不起作用,或者不适用于我的情况:

  1. AWS Lambda cannot connect to Oracle Instant Client Paul 的解决方案在上面的第 5 步中完成。

  2. AWS Python Lambda with Oracle 在我的情况下,托马斯的解决方案对我没有帮助。这些是linux命令。我需要一个 Windows 解决方案。

另一种方法

也许我需要问一下:windows 开发者如何获取适用于 Amazon Linux Lambda 环境的正确版本的 libaio.so.1,以及该文件应该放在 lambda 包中的什么位置?任何涉及 bash 命令的解决方案都无济于事。

【问题讨论】:

  • 你试过apt-get install libaio-dev 吗?

标签: python oracle aws-lambda


【解决方案1】:

由于我遇到了同样的问题,您可以从这里找到所需的库: https://pkgs.org/download/libaio (例如 Arch linux 包)

然后将该包中的文件提取到您的 lambda 包的 /lib 文件夹中。

【讨论】:

    【解决方案2】:

    下载适用于 windows x64 的即时客户端基本精简版.. 该错误将得到解决!因为你已经下载了 linux 版本并在 Windows 上使用它.. 你得到了那个错误。

    【讨论】:

      猜你喜欢
      • 2020-09-04
      • 2020-02-20
      • 2016-07-24
      • 1970-01-01
      • 2017-11-26
      • 2019-08-20
      • 1970-01-01
      • 2022-08-24
      • 2021-06-22
      相关资源
      最近更新 更多