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

SAM构建AWS Lambda ONNX Runtime层时依赖解析失败求助

解决AWS Lambda Layer构建onnxruntime==1.18.1时的依赖解析错误

问题背景

使用SAM CLI 1.119.0、pip 24.1.1构建Python 3.12的Lambda Layer,requirements.txt指定:

onnxruntime==1.18.1 ; python_version >= "3.10" and python_version < "4.0"

构建时抛出错误:

Error: PythonPipBuilder:ResolveDependencies - {onnxruntime==1.18.1(wheel)}

调试日志显示SAM在manylinux2014_x86_64平台找不到匹配版本,但本地Python 3.12虚拟环境可正常安装该依赖。

问题原因

onnxruntime 1.18.1针对Python 3.12仅发布了manylinux_2_28_x86_64平台的wheel包,而旧版SAM CLI默认使用manylinux2014_x86_64(对应glibc 2.17)的平台标签,两者不匹配导致依赖解析失败。

解决方案

方法1:修改requirements.txt指定兼容平台

直接在依赖声明后添加平台参数,强制pip下载适配Lambda环境的包:

onnxruntime==1.18.1 ; python_version >= "3.10" and python_version < "4.0" --platform manylinux_2_28_x86_64 --only-binary=:all:

方法2:升级SAM CLI到最新版本

新版SAM CLI已更新默认平台标签,适配onnxruntime的新wheel格式,执行升级命令:

pip install --upgrade aws-sam-cli

方法3:手动构建Layer包上传

如果前两种方法无效,可手动构建兼容Lambda的包:

  1. 创建并激活Python 3.12虚拟环境:
python3.12 -m venv lambda-env
source lambda-env/bin/activate
  1. 安装依赖到指定目录:
pip install onnxruntime==1.18.1 --platform manylinux_2_28_x86_64 --only-binary=:all: -t python/lib/python3.12/site-packages/
  1. 打包成zip文件:
cd python
zip -r onnx-layer.zip .
  1. 修改SAM模板引用本地打包文件:
Resources:
  LambdaLayerOnnx:
    Type: AWS::Serverless::LayerVersion
    Properties:
      LayerName: !Sub ${AWS::StackName}-onnx
      ContentUri: ./onnx-layer.zip

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 12:52:33