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

使用AWS Lambda部署Scrapy Serverless定时任务遇GLIBC版本错误

问题原因

AWS Lambda采用的Amazon Linux 2环境自带GLIBC版本为2.23,而你本地安装的cryptography库是基于更高版本的GLIBC编译的,部署到Lambda后出现版本不匹配问题。本地sls offline运行正常是因为本地系统的GLIBC满足库的版本要求。

解决方案

1. 在Lambda兼容环境中编译依赖包

用Docker模拟Lambda运行环境安装依赖,保证编译出的库兼容:

  • 拉取Lambda兼容镜像:docker pull amazonlinux:2
  • 启动并进入容器:docker run -it -v $(pwd):/app amazonlinux:2 /bin/bash
  • 容器内安装编译工具与依赖:
    yum install -y python3-devel gcc openssl-devel
    python3 -m venv venv
    source venv/bin/activate
    pip install scrapy cryptography --target /app/python
    
  • 退出容器后,将python目录下的依赖包纳入Serverless部署包,确保Lambda加载兼容版本。

2. 用Serverless插件自动处理依赖

使用serverless-python-requirements插件,自动在Docker中构建兼容Lambda的依赖:

  • 安装插件:npm install serverless-python-requirements --save-dev
  • 在serverless.yml中添加配置:
    plugins:
      - serverless-python-requirements
    custom:
      pythonRequirements:
        dockerizePip: true
        slim: true # 可选,缩减包体积
    
  • 部署时插件会自动在Lambda兼容环境中构建依赖,规避GLIBC版本冲突。

3. 替换为纯Python加密库(可选)

若上述方法繁琐,可尝试用纯Python实现的pycryptodome替代cryptography,需确认Scrapy及其依赖支持该替换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 03:30:46