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

求助:sam build构建容器卡顿超2-3小时,移除snowflake-sqlalchemy可正常构建

问题解决方案

可能原因

snowflake-sqlalchemy依赖的底层库(如cryptography、cffi相关)与langchain、llama-index系列等大量依赖共存时,会触发重复编译或依赖版本冲突导致的编译重试,再结合Python 3.12的特性,进一步加剧资源消耗,最终造成CPU跑满、构建超时。

具体解决步骤

1. 固定依赖版本

避免依赖自动升级至兼容差的版本,修改requirements.txt为带指定稳定版本的列表,示例:

boto3==1.34.100
requests==2.31.0
snowflake-sqlalchemy==1.5.12
langchain==0.1.15
langchain-community==0.0.33
langchain-openai==0.0.8
pg8000==1.30.3
psycopg2-binary==2.9.9
pgvector==0.2.5
plotly==5.20.0
kaleido==0.2.1
llama-index-vector-stores-postgres==0.1.6
llama-index==0.10.35
llama-index-core==0.10.35
llama-index-agent-openai==0.1.7
llama-index-llms-openai==0.1.11
llama-index-embeddings-openai==0.1.9
llama-index-llms-anthropic==0.1.7
llama-index-vector-stores-astra-db==0.1.3
llama-index-experimental==0.1.17
llama-index-postprocessor-flag-embedding-reranker==0.1.3
cryptography==42.0.5

注:版本号可根据实际兼容性测试调整

2. 优化Docker分层构建

若使用自定义Dockerfile,采用分层构建逻辑,利用Docker缓存减少重复编译:

FROM public.ecr.aws/lambda/python:3.12

# 先安装依赖层,复用缓存
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# 再复制代码层
COPY app.py .

CMD ["app.lambda_handler"]

若用SAM默认镜像构建,可在template.yaml中添加元数据指定构建配置:

Resources:
  YourFunction:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: ./
      Handler: app.lambda_handler
      Runtime: python3.12
      Metadata:
        DockerContext: ./
        Dockerfile: Dockerfile

3. 预编译依赖包

提前下载snowflake-sqlalchemy及其依赖的对应平台wheel包,避免构建时现场编译。修改requirements.txt指向本地wheel文件:

./snowflake_sqlalchemy-1.5.12-py3-none-any.whl
./cryptography-42.0.5-cp312-cp312-manylinux_2_28_x86_64.whl
# 其他依赖...

4. 调整SAM构建资源限制

执行sam build时,通过参数限制Docker容器CPU资源,或指定更快的网络:

# 限制容器使用2核CPU,同时使用host网络
sam build --docker-container-network host --docker-run-args "--cpus=2"

5. 排查并解决依赖冲突

用pip check命令检测依赖冲突:

pip check

若发现冲突,手动调整版本。例如snowflake-sqlalchemy与部分组件的sqlalchemy版本冲突时,可固定sqlalchemy版本:

sqlalchemy==2.0.29
snowflake-sqlalchemy==1.5.12

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 19:12:42