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

M1芯片部署linux/amd64容器化Lambda时遇Runtime.InvalidEntrypoint错误

问题分析与解决

错误根源

fork/exec /lambda-entrypoint.sh: exec format error 本质是架构不匹配:你的M1芯片属于arm64架构,而AWS Lambda运行在x86_64(amd64)环境中。即便你指定基于linux/amd64的基础镜像,若构建过程未正确处理跨架构编译,最终生成的镜像或其中的二进制依赖仍会是arm64格式,导致Lambda无法执行。

解决步骤

1. 启用Docker跨架构构建支持

M1芯片默认是arm64环境,需通过buildx工具强制构建amd64架构镜像:

  • 初始化并切换使用buildx:
    docker buildx create --use
    
  • 构建并推送镜像时指定目标平台:
    docker buildx build --platform linux/amd64 -t <你的ECR镜像标签> --push .
    

2. 显式指定amd64版本基础镜像

在Dockerfile中,不要使用不带架构后缀的Python基础镜像,避免Docker自动拉取适配M1的arm64版本:

# 正确写法:指定amd64架构的Lambda Python基础镜像
FROM public.ecr.aws/lambda/python:3.12-amd64

# 后续构建步骤...

3. 验证镜像架构

推送完成后,本地验证镜像架构是否为amd64:

docker inspect <你的镜像ID> | grep -i architecture

输出应显示"Architecture": "amd64",确认架构正确。

4. 确认Lambda函数架构配置

登录AWS控制台,检查Lambda函数的架构设置,确保选择x86_64(容器镜像部署通常会自动识别,但手动确认可排除配置问题)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 14:17:32