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

引入rusoto后无法编译Rust AWS Lambda的问题解决求助

解决Rust Lambda引入rusoto后的链接器与运行时依赖问题

问题根源

你遇到的问题本质是rusoto依赖的OpenSSL库默认采用动态链接,而AWS Lambda的Amazon Linux 2运行时环境没有预装对应的libssl.so.3;同时cargo lambda默认的zig linker在编译时找不到OpenSSL的静态库,导致链接报错。

解决方案

方案1:强制静态链接OpenSSL(推荐)

修改Cargo.toml,给rusoto相关依赖添加native-tls-vendored特性,强制使用静态编译的OpenSSL:

[package]
name = "super-lambda"
version = "0.1.0"
edition = "2021"

[dependencies]
lambda_http = "0.7"
lambda_runtime = "0.7"
lazy_static = "1.4.0"
rusoto_core = { version = "0.48.0", features = ["native-tls-vendored"] }
rusoto_dynamodb = { version = "0.48.0", features = ["native-tls-vendored"] }
serde = "1.0.149"
tokio = { version = "1", features = ["macros"] }
tracing = { version = "0.1", features = ["log"] }
tracing-subscriber = { version = "0.3", default-features = false, features = ["fmt"] }

修改后直接执行cargo lambda build即可,zig linker会自动处理静态链接,无需禁用。

方案2:手动配置zig linker的OpenSSL路径(方案1不生效时使用)

  1. 先安装OpenSSL静态库:
    • Linux环境:
      sudo apt-get install libssl-dev
      
    • macOS环境(使用brew):
      brew install openssl@3
      
  2. 编译时指定环境变量,让zig linker定位到静态库:
    OPENSSL_STATIC=1 OPENSSL_DIR=/path/to/openssl cargo lambda build
    
    macOS下默认路径通常为/usr/local/opt/openssl@3

方案3:替换为AWS SDK for Rust(长期维护推荐)

注意:rusoto已停止维护,官方推荐使用AWS SDK for Rust(aws-sdk-rust),它默认支持无依赖的静态编译,适配Lambda环境更友好。示例依赖配置:

[package]
name = "super-lambda"
version = "0.1.0"
edition = "2021"

[dependencies]
lambda_http = "0.7"
lambda_runtime = "0.7"
lazy_static = "1.4.0"
aws-sdk-dynamodb = "1.12"
aws-config = "1.1"
serde = "1.0.149"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
tracing = { version = "0.1", features = ["log"] }
tracing-subscriber = { version = "0.3", default-features = false, features = ["fmt"] }

迁移后执行cargo lambda build即可完成编译,不会出现依赖缺失问题。

验证方法

编译完成后,执行以下命令检查二进制文件的依赖:

ldd target/lambda/super-lambda/bootstrap

如果输出中没有libssl或libcrypto的动态依赖项,说明静态链接成功,上传到Lambda即可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 13:50:34