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

Apple Silicon构建x86_64架构AWS SAM镜像部署Lambda失败求助

在Apple M1 Silicon上构建AWS SAM x86_64镜像部署包失败的解决方案

问题详情

在Apple M1 Silicon设备上,针对x86_64架构构建AWS SAM Hello World示例的Image(Docker)部署包时,sam build命令执行失败。SAM底层依赖Docker构建镜像,但Mac环境下无法正常运行;相同步骤在AWS x86 Linux EC2实例上可成功完成。尝试在Mac的Docker中运行x86 AWS Linux实现docker-in-docker未成功。

操作步骤

  • 通过sam init创建基于python3.11、Image类型的HelloWorld项目(项目名s3watch-image)
  • 执行sam build时报错:

failed to export image: NotFound: content digest sha256:d40a1d2caa9d01b32d5f0ce81782af06f49786c01729d03c6450ad78b06654c7: not found

环境信息

  • MacOS Sequoia 15.1.1
  • SAM CLI版本1.131.0
  • Docker Engine 27.3.1
  • AWS区域us-east-1
  • Zip部署方式可正常完成

解决方案

1. 直接在构建命令中指定平台参数

执行构建时强制指定x86_64架构,无需修改项目模板:

sam build --platform linux/amd64

2. 在SAM模板中配置默认平台

修改项目根目录下的template.yaml,为Image类型的函数添加Platform参数,永久指定构建架构:

Resources:
  HelloWorldFunction:
    Type: AWS::Serverless::Function
    Properties:
      PackageType: Image
      ImageConfig:
        Command: ["app.lambda_handler"]
      Platform: "linux/amd64" # 指定x86_64平台

保存后重新执行sam build。

3. 启用Docker Desktop的Rosetta模拟

开启Rosetta可以让Docker更高效地模拟x86_64环境:

  • 打开Docker Desktop,进入Settings > Features in development
  • 勾选Use Rosetta for x86/amd64 emulation on Apple Silicon
  • 重启Docker Desktop后重试sam build

4. 清理Docker缓存后重试

缓存的镜像可能存在架构不兼容问题,清理后重新构建:

docker system prune -a
sam build --platform linux/amd64

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 21:44:53