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

GitHub Actions部署AWS SAM时Python版本匹配错误求助

问题解决:GitHub Actions中SAM构建提示找不到Python3.9

错误原因

从报错日志可以明确:你的SAM项目包含两个Lambda函数,其中MyLambdaFunction使用Python3.8,而HelloWorldFunction使用Python3.9;但当前GitHub Actions流水线仅安装了Python3.8环境,SAM构建时无法匹配到Python3.9的运行时,导致二进制验证失败。

解决方案

方案1:统一SAM模板的Python版本(推荐)

找到serverless-architecture-with-SAM/template.yml文件,定位到HelloWorldFunction的配置段,将runtime: python3.9修改为runtime: python3.8,与另一个函数的Python版本保持一致。修改后SAM构建会直接使用已安装的Python3.8环境,无需调整流水线配置。

方案2:在流水线中同时安装Python3.8和3.9

若需保留Python3.9的运行时配置,修改build-and-deploy-infra任务的步骤,同时安装两个版本的Python,确保SAM能找到对应环境:

build-and-deploy-infra:
  needs: test-infra
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v2
    # 安装Python3.8用于测试依赖
    - uses: actions/setup-python@v3
      with:
        python-version: 3.8
    # 安装Python3.9用于SAM构建对应版本的Lambda
    - uses: actions/setup-python@v3
      with:
        python-version: 3.9
        architecture: x64
        cache: 'pip'
    - uses: aws-actions/setup-sam@v1
    - uses: aws-actions/configure-aws-credentials@v1
      with:
        aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
        aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        aws-region: us-east-1
    - run: sam build
      working-directory: serverless-architecture-with-SAM
    - run: sam deploy --no-confirm-changeset --no-fail-on-empty-changeset
      working-directory: serverless-architecture-with-SAM

调整后流水线会同时具备Python3.8和3.9的运行环境,SAM构建时会自动匹配对应函数的runtime版本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 07:20:36