You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Lambda调用bonsai模块时缺失libldap_r-2.4.so.2依赖求助

解决方案:为Python 3.11 x86_64 Lambda Layer安装bonsai模块

核心问题分析

  • Bonsai没有适配manylinux2014_x86_64的预编译二进制包,因此无法通过指定--only-binary=:all:的方式安装。
  • 直接安装bonsai后,Lambda运行时缺少其依赖的libldap_r-2.4.so.2等系统库,导致导入失败。

具体操作步骤(在AWS CloudShell中执行)

  1. 创建符合Lambda Layer规范的目录结构
    Lambda Layer要求Python包放在python/lib/python3.11/site-packages/路径下,系统库放在lib/路径下:

    mkdir -p my-layer/python/lib/python3.11/site-packages
    mkdir -p my-layer/lib
    
  2. 安装编译bonsai所需的系统依赖
    CloudShell基于Amazon Linux 2,通过yum安装OpenLDAP开发库,用于编译bonsai:

    sudo yum install -y openldap-devel
    
  3. 安装cryptography、ldap3和bonsai到指定目录
    先安装支持预编译包的cryptography和ldap3,再编译安装bonsai:

    # 安装cryptography和ldap3
    pip3.11 install \    
        --platform manylinux2014_x86_64 \
        --target=my-layer/python/lib/python3.11/site-packages \
        --implementation cp \
        --python-version 3.11.8 \
        --only-binary=:all: --upgrade \
        cryptography ldap3
    
    # 编译安装bonsai
    pip3.11 install bonsai --target=my-layer/python/lib/python3.11/site-packages
    
  4. 复制依赖的系统共享库到Layer目录
    将bonsai需要的LDAP库复制到my-layer/lib/,确保Lambda运行时能加载:

    cp /usr/lib64/libldap_r-2.4.so.2 my-layer/lib/
    cp /usr/lib64/liblber-2.4.so.2 my-layer/lib/
    
  5. 打包生成Lambda Layer压缩包
    进入my-layer目录后打包,确保压缩包内的目录结构符合要求:

    cd my-layer
    zip -r ../python-ldap-layer.zip .
    
  6. Lambda函数配置

    • 将生成的python-ldap-layer.zip上传为Lambda Layer,并关联到你的Python 3.11 x86_64 Lambda函数。
    • 在Lambda函数的环境变量中添加:
      LD_LIBRARY_PATH=/opt/lib:$LD_LIBRARY_PATH
      
      该配置让Python能够找到Layer中打包的系统库。

内容的提问来源于stack exchange,提问作者Lee Cavazos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 10:31:15