搭建AWS Lambda匹配开发环境以解决部署报错问题
解决AWS Lambda部署SeleniumWire时的_cffi_backend缺失问题
一、搭建Lambda兼容验证环境(EC2方案)
Lambda基于Amazon Linux 2(x86_64)运行,EC2是最精准的匹配环境:
- 启动EC2实例:选择Amazon Linux 2 AMI (x86_64),实例类型选t2.micro(免费额度覆盖),安全组开放SSH端口
- 远程连接实例后,安装Lambda对应版本的Python(以3.9为例):
sudo amazon-linux-extras install python3.9 sudo alternatives --set python3 /usr/bin/python3.9 - 配置虚拟环境并安装依赖:
python3.9 -m venv lambda-env source lambda-env/bin/activate pip install seleniumwire cffi - 上传并验证代码:将本地
lambda_function.py上传至实例,直接运行测试是否报错:python lambda_function.py
二、在EC2内生成兼容部署包
验证代码正常后,直接在EC2环境打包:
- 进入虚拟环境的依赖目录:
cd lambda-env/lib/python3.9/site-packages/ - 打包所有依赖与代码:
zip -r9 ~/lambda-deploy.zip . cd ~ zip -g lambda-deploy.zip lambda_function.py - 将
lambda-deploy.zip下载到本地,上传至Lambda即可
三、Docker替代方案(强制x86_64架构)
若偏好Docker,需指定x86_64架构的Amazon Linux 2镜像,避免ARM兼容问题:
- 启动容器:
docker run -it --platform linux/amd64 amazonlinux:2 bash - 在容器内重复EC2的Python安装、依赖配置、代码验证步骤,完成后打包并拷贝出部署包
关键注意事项
- 所有依赖必须是x86_64架构编译产物,ARM环境安装的依赖无法在Lambda运行
- 验证时需模拟Lambda执行逻辑:直接调用
lambda_function.lambda_handler方法 - 若cffi问题仍存在,可指定安装稳定版本:
pip install cffi==1.15.1
内容的提问来源于stack exchange,提问作者Val Lapidus
相关产品推荐
相关产品推荐

