【问题标题】:cx_Oracle and Lambda Layer error - aws lambda cannot locate a 64-bit oracle client librarycx_Oracle 和 Lambda 层错误 - aws lambda 找不到 64 位 oracle 客户端库
【发布时间】:2021-03-14 12:50:54
【问题描述】:

我使用 cx_oracle 和 oracle-instantclient 创建了 lambda 层。创建了 lambda 层并能够导入 cx_oracle,但它总是给我一个错误,例如缺少 64 位 oracle 客户端库。下面是我的文件夹结构

【问题讨论】:

    标签: python amazon-web-services aws-lambda cx-oracle aws-lambda-layers


    【解决方案1】:

    这个问题可能有几个根本原因。

    1. 检查 AWS 控制台中的文件结构。您还可以尝试通过列出您使用的层中的文件来调试 lambda。尝试使用 -Including library dependencies in a layer 检查路径的正确性。
    2. 对于 cx_Oracle,您还需要设置一个环境变量LD_LIBRARY_PATH 指向放置库的位置。您可以在 AWS 控制台的 lambda 页面上更新它。由于该层位于/opt 文件夹中,请提供安装带有库的模块的路径。

    【讨论】:

    • 如何设置? LD_LIBRARY_PATH
    • @Aruns 遵循本指南 docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html LD_LIBRARY_PATH 应设置为 /opt/ + 您安装 lib 文件的文件夹。此外,您可能需要 PYTHONPATH var 将其设置为 /opt 或通过将模块代码放入 python/lib/python/site-packages 来构造层中的文件
    • 如果您可以使用 cx_Oracle 8 获得日志输出,请在启动 cx_Oracle 之前设置 DPI_DEBUG_LEVEL=64。日志将显示它在哪里寻找 Oracle 客户端库。
    猜你喜欢
    • 2019-12-06
    • 2022-11-07
    • 2013-03-22
    • 1970-01-01
    • 2019-10-09
    • 2020-11-23
    • 1970-01-01
    • 2019-04-15
    • 1970-01-01
    相关资源
    最近更新 更多