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

为Snowflake创建AWS Lambda层时遇_cffi_backend模块缺失错误

解决Lambda层中snowflake-connector-python的_cffi_backend缺失问题

问题根源

你遇到的错误是因为Ubuntu环境构建的C扩展组件与Lambda的Amazon Linux 2运行环境不兼容。_cffi_backend是CFFI库的编译后组件,Ubuntu下编译的版本无法在Lambda的Amazon Linux系统中加载。

解决方案:在Amazon Linux环境中构建依赖包

Lambda运行基于Amazon Linux 2,必须在匹配的环境中构建snowflake-connector-python及其依赖,才能保证兼容性。推荐用Docker模拟Lambda环境来构建:

  1. 拉取Amazon Linux 2镜像
docker pull amazonlinux:2
  1. 启动容器并挂载当前目录(用于输出构建好的层包)
docker run -v $(pwd):/build -it amazonlinux:2 /bin/bash
  1. 在容器内安装对应版本的Python及编译依赖

注意:以下命令对应Lambda运行时python3.8,若你的Lambda用其他版本(如python3.9/3.10),替换为对应Python版本的安装命令

# 安装系统依赖
yum install -y gcc openssl-devel bzip2-devel libffi-devel python38-devel python38-pip

# 升级pip
python3.8 -m pip install --upgrade pip

# 安装snowflake-connector-python到指定目录
mkdir -p /build/python
python3.8 -m pip install snowflake-connector-python -t /build/python

# 打包层文件
cd /build
zip -r snowflake-connector-python.zip python
  1. 退出容器,当前目录下会生成兼容Lambda的层包

调整Terraform配置(可选)

确保compatible_runtimes与你的Lambda运行时版本完全一致,比如Lambda用python3.8则配置:

resource "aws_lambda_layer_version" "lambda_layer" {
  filename            = "${path.module}/../snowflake-connector-python.zip"
  layer_name          = "snowflake"
  compatible_runtimes = ["python3.8"]
}

验证

重新部署层包到Lambda后,执行import snowflake.connector即可正常加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 19:32:47