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

跨账号SAM应用Lambda缺失依赖:CodeBuild如何打包依赖?

Lambda依赖打包与SAM打包报错解决方法

问题背景

通过sam init创建的SAM应用,搭建跨账号AWS CodePipeline流水线后,可正常部署资源,但Lambda函数缺失requests、aws_lambda_powertools等依赖,测试时报错:

"errorMessage": "Unable to import module 'app': No module named 'aws_lambda_powertools'"

同时使用sam package命令时触发参数冲突错误:

Error: Cannot use both --resolve-s3 and --s3-bucket parameters. Please use only one.

解决方案

1. 正确打包Lambda依赖

原构建命令中pip install -r requirements.txt仅将依赖安装到CodeBuild环境,未打包进Lambda部署包。需将依赖安装到Lambda函数目录内,再执行打包:

  • 切换到Lambda函数目录(即hello_world目录)
  • 使用pip install将依赖安装到当前目录,指定兼容Lambda运行时的平台参数:
cd hello_world
pip install --target . -r requirements.txt --platform manylinux2014_x86_64 --only-binary=:all:
cd ..

注:--platform参数确保安装的依赖兼容AWS Lambda的x86_64运行环境,避免因本地架构差异导致的兼容性问题。

2. 修复SAM打包参数冲突报错

SAM CLI新版本默认启用--resolve-s3参数(自动创建/选择S3存储桶),与显式指定的--s3-bucket冲突。二选一即可:

  • 方案A:使用自动存储桶:移除--s3-bucket参数,让SAM自动处理存储桶:
sam package --template-file template.yaml --output-template-file packaged-template.yml --region $AWS_REGION
  • 方案B:指定已有存储桶:添加--no-resolve-s3参数,禁用自动存储桶功能:
sam package --template-file template.yaml --s3-bucket $ArtifactBucket --output-template-file packaged-template.yml --region $AWS_REGION --no-resolve-s3

修改后的完整buildspec.yaml示例

version: 0.2
phases:
  build:
    commands:
      - echo "Starting SAM packaging `date` in `pwd`"
      - pip install --upgrade pip
      - pip install awscli aws-sam-cli
      # 安装依赖到Lambda函数目录
      - cd hello_world
      - pip install --target . -r requirements.txt --platform manylinux2014_x86_64 --only-binary=:all:
      - cd ..
      # 使用SAM打包(二选一)
      # 方案A:自动存储桶
      - sam package --template-file template.yaml --output-template-file packaged-template.yml --region $AWS_REGION
      # 方案B:指定已有存储桶
      # - sam package --template-file template.yaml --s3-bucket $ArtifactBucket --output-template-file packaged-template.yml --region $AWS_REGION --no-resolve-s3
artifacts:
  files:
    - packaged-template.yml

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 21:40:17