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

Mac Silicon(arm64)上AWS SAM Cli本地运行Lambda函数失败求助

解决方案

1. 确认Docker的arm64运行状态

  • 打开Docker Desktop,进入设置 > 开发中功能,勾选「使用新的虚拟化框架」,重启Docker。
  • 执行命令验证架构:docker system info | grep Architecture,输出必须是Architecture: aarch64,否则说明Docker仍在模拟x86模式。

2. 清理SAM与Docker的冗余数据

  • 删除SAM本地构建缓存:rm -rf .aws-sam/build
  • 清理Docker无效镜像、容器和卷:
    docker system prune -a
    docker volume prune
    

3. 强制指定arm64 Lambda基础镜像

在_aws_sam/template.yml里给TestLambda明确配置arm64镜像,以Python为例:

Resources:
  TestLambda:
    Type: AWS::Serverless::Function
    Properties:
      Architectures: ["arm64"]
      PackageType: Image
      ImageUri: public.ecr.aws/lambda/python:3.12-arm64
      ImageConfig:
        Command: ["你的.handler路径"]

其他语言替换对应arm64镜像,比如Node.js用public.ecr.aws/lambda/nodejs:20-arm64。

4. 排查镜像拉取的网络问题

  • 先手动拉取镜像测试:docker pull public.ecr.aws/lambda/python:3.12-arm64(替换成你用的镜像)
  • 如果拉取失败,关闭VPN/代理,或者在Docker设置里配置国内镜像加速器,解决ECR镜像访问的网络波动问题。
  • 执行sam configure确认区域设置正确,比如选us-east-1,避免跨区域拉取镜像的延迟。

5. 更新SAM CLI到最新版

用Homebrew更新:brew upgrade aws-sam-cli,旧版本SAM对arm64的镜像构建逻辑可能存在bug。

6. 补全系统依赖

  • 安装Xcode命令行工具:xcode-select --install,恢复系统后可能缺失部分编译依赖。
  • 重置shell环境:source ~/.zshrc(或~/.bashrc),确保Docker和SAM的路径指向arm64版本。

用户提供的报错日志:

Building Image Failed
requests.exceptions.HTTPError: 502 Server Error: Bad Gateway

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 00:05:27