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

Lambda导入paramiko失败:缺失GLIBC_2.28版本如何解决?

解决AWS Lambda导入paramiko时的GLIBC版本问题

核心原因

Lambda运行在Amazon Linux 2环境,系统自带的GLIBC版本为2.26,而你本地pip安装的paramiko依赖库(如cryptography)是基于更高版本GLIBC编译的,导致兼容性冲突。本地直接打包的包无法适配Lambda环境,必须在与Lambda兼容的环境中重新编译打包。

解决方案步骤

方法1:使用Amazon Linux 2容器编译打包(推荐)

  1. 拉取Amazon Linux 2镜像:
    docker pull amazonlinux:2
    
  2. 启动容器并挂载本地工作目录:
    docker run -it --rm -v $(pwd):/workspace amazonlinux:2 /bin/bash
    
  3. 在容器内安装编译依赖和Python 3.9:
    yum install -y python39 python39-pip gcc openssl-devel libffi-devel
    
  4. 切换到工作目录,将paramiko安装到指定文件夹(用于制作Lambda层):
    cd /workspace
    mkdir python
    pip3.9 install paramiko -t python/
    
  5. 退出容器,将python文件夹打包成zip:
    zip -r paramiko-layer.zip python/
    
  6. 上传该zip到S3,重新创建Lambda层并关联至目标函数,确保运行时选择Python 3.9。

方法2:使用预编译Lambda层包

若不想自行编译,可选择针对Amazon Linux 2、Python 3.9预编译的paramiko层包,但需确保版本完全匹配。不过自行编译的方式更可靠,能避免潜在的版本冲突。

验证与排查

  1. 在lambda_function.py开头添加导入语句测试:
    import paramiko
    
  2. 触发函数,若仍有问题,检查以下几点:
    • 层的zip包结构是否正确:必须是python/目录下直接存放库文件,不能嵌套额外外层文件夹
    • Lambda函数是否关联了最新上传的层版本
    • 函数运行时确实为Python 3.9,与打包时的Python版本一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 03:42:05