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

MacOS M1本地调用Quarkus Lambda原生构建函数遇问题求助

AWS SAM本地调用Quarkus Native Lambda函数报错分析与说明

问题场景

执行AWS SAM CLI本地调用Quarkus Native Lambda函数命令:

sam local invoke --template target/sam.native.yaml --event payload.json

操作使用镜像amazon/aws-sam-cli-build-image-provided。

环境配置

  • 自定义GraalVM构建镜像配置文件Dockerfile.graalbase:
FROM ghcr.io/graalvm/graalvm-ce:ol8-java11-22.2.0 AS build
RUN gu install native-image

WORKDIR /project
VOLUME ["/project"]
ENTRYPOINT ["native-image"]
  • 构建自定义镜像命令:
docker build -f src/main/docker/Dockerfile.graalbase -t graalbase
  • Quarkus Native打包命令:
mvn clean package -Dquarkus.package.type=native \
                  -Dquarkus.native.container-build=true \
                  -Dquarkus.native.builder-image=graalbase      
  • 额外Native Image编译参数:
-H:+RemoveSaturatedTypeFlows,\
-H:+PrintAnalysisStatistics

错误现象

执行调用后返回错误:

Mounting /private/var/folders/zm/0m9j6d_514q7sjpkgg6_7lzr0000gq/T/tmptq9x6jc9 as /var/task:ro,delegated inside runtime container
START RequestId: 3cf00931-c409-426d-b568-98b5a2402da8 Version: $LATEST
16 Sep 2022 15:11:25,289 [ERROR] (rapid) Init failed error=fork/exec /var/task/bootstrap: no such file or directory InvokeID=

排查细节

进入运行容器后验证:

  • 目标执行文件/var/task/bootstrap实际存在:
ls -la /var/task/bootstrap
-rwxr-xr-x 1 root root 115716600 Sep 16 15:12 /var/task/bootstrap
  • 直接执行文件时触发架构不兼容错误:
exec /var/task/bootstrap
/var/task/bootstrap: /lib/ld-linux-aarch64.so.1: bad ELF interpreter: No such file or directory

问题根源

核心为架构不匹配:生成的Native镜像为ARM64架构,但AWS SAM本地运行的容器是x86_64(Linux 64)架构。当前GraalVM不支持跨架构交叉编译,通过qemu实现跨架构构建的方案仍处于早期开发阶段。

此前尝试过相关社区替代方案,但存在构建卡住的问题。

临时解决方案建议

  • 在x86_64架构机器上构建Native镜像,确保构建环境与SAM本地运行容器的架构一致
  • 暂时避免在ARM64环境下构建后直接用SAM本地调用,等待跨架构编译支持成熟

内容的提问来源于stack exchange,提问作者Daniel Teleginski Camargo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 13:05:29