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

在Amazon Linux 2023上cargo lambda build --arm64构建失败求助

解决Amazon Linux 2023 Lambda Rust镜像运行时qemu动态链接器错误

问题原因

你构建了ARM64架构的Rust二进制文件,但在x86_64主机上运行时,qemu模拟ARM64环境需要Amazon Linux 2023提供的ARM64动态链接器,而默认的public.ecr.aws/lambda/provided:al2023镜像会匹配主机架构(x86_64),缺少ARM64所需的/lib/ld-linux-aarch64.so.1文件,导致报错。

解决方案

方案1:构建与主机匹配的架构二进制

如果你的Lambda运行环境是x86_64,或仅需本地测试,直接去掉--arm64参数构建x86_64版本:
修改builder阶段的构建命令:

RUN cargo lambda build --release

生成的x86_64二进制无需qemu模拟,可直接在x86主机上运行。

方案2:使用ARM64版本基础镜像并配置跨架构支持

若必须构建ARM64二进制,需确保基础镜像为ARM64架构,同时主机支持跨架构运行:

  1. 在主机上安装qemu跨架构支持(以Ubuntu为例):
sudo apt-get install qemu-user-static
  1. 修改Dockerfile,指定基础镜像为ARM64架构:
# 构建阶段不变
FROM ghcr.io/cargo-lambda/cargo-lambda:latest as builder
WORKDIR /app
COPY . .
RUN cargo lambda build --arm64 --release

# 指定ARM64架构的基础镜像
FROM public.ecr.aws/lambda/provided:al2023 --platform linux/arm64
COPY --from=builder /app/target/lambda/user/bootstrap ${LAMBDA_RUNTIME_DIR}
CMD ["bootstrap"]
  1. 构建镜像时指定平台:
docker build --platform linux/arm64 -t my-rust-lambda .

方案3:使用cargo-lambda预配置镜像简化流程

cargo-lambda提供了预配置好的Lambda运行时镜像,已包含ARM64依赖,无需手动处理链接器问题:

FROM ghcr.io/cargo-lambda/cargo-lambda:latest as builder
WORKDIR /app
COPY . .
RUN cargo lambda build --arm64 --release

FROM ghcr.io/cargo-lambda/lambda-provided:al2023-arm64
COPY --from=builder /app/target/lambda/user/bootstrap /var/runtime/bootstrap
CMD ["bootstrap"]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 17:18:16