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

AWS Lambda运行含snowflake-connector-python的层时提示GLIBC_2.28缺失

问题分析与解决方案

问题原因

AWS Lambda运行环境基于Amazon Linux 2,自带的GLIBC版本为2.26;而你用Ubuntu镜像构建层时,Ubuntu系统的GLIBC版本更高(通常是2.28+)。snowflake-connector-python依赖的cryptography库在Ubuntu环境编译时会绑定高版本GLIBC,部署到Lambda后因环境中缺少对应版本的GLIBC触发报错。指定cryptography和bcrypt旧版本无法解决问题——这些库在Ubuntu环境安装时依然会链接系统的高版本GLIBC。

解决方法:用与Lambda匹配的环境构建层

必须在Amazon Linux 2或官方Lambda Python运行时镜像中构建依赖,确保编译出的二进制文件与Lambda环境兼容。

方法1:使用Amazon Linux 2 Docker镜像构建

替换原Ubuntu构建流程,执行以下命令:

# 启动Amazon Linux 2容器,挂载本地开发目录
docker run -v <你的开发目录路径>:/lambda -it --rm amazonlinux:2

# 在容器内安装依赖工具
yum update -y
yum install -y python3-pip zip

# 进入挂载目录,创建层结构
cd lambda
mkdir -p temp/python
cd temp/python

# 安装snowflake-connector-python到目标目录
pip3 install snowflake-connector-python -t . --no-cache-dir

# 返回上层目录,打包成zip
cd ..
zip -r9 ../snowflake-connector-python.zip .

方法2:使用官方Lambda Python运行时镜像构建

如果你的Lambda使用特定Python版本(比如3.11),用对应版本的Lambda镜像兼容性更精准:

# 替换<your-python-version>为实际版本,比如3.11
docker run -v <你的开发目录路径>:/lambda -it --rm public.ecr.aws/lambda/python:<your-python-version>

# 进入挂载目录,创建层结构
cd lambda
mkdir -p temp/python
cd temp/python

# 安装依赖
pip install snowflake-connector-python -t . --no-cache-dir

# 打包
cd ..
zip -r9 ../snowflake-connector-python.zip .

验证步骤

  1. 将生成的snowflake-connector-python.zip上传为Lambda层
  2. 重新配置Lambda函数关联该层
  3. 测试函数,确认导入错误消失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 01:32:01