😺

cargo lambda deployした関数が `GLIBC_2.28' not found でうごかない

2024/10/22に公開

1年ぶりにcargo lambdaでビルドした関数が動かず焦る。。。

deploy後に実行された関数で下記のようなエラーがcloudwatchに出てしまっていた

/var/task/bootstrap: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by /var/task/bootstrap)

同様の問題に遭遇している人は多々いるようで、aws-lambda-rust-runtimeのissueで該当エラーをみてみると多数あった

原因としては、lambda内で実行リンクされたGLIBバージョンの不一致。
デフォルトではprovided.al2023を利用しているようで、これが実行時にリンクされたGLIBのバージョンをサポートしてないみたい.

build時に対象のgnu 2.26をリンクしつつ、al2をruntimeに指定することで行けた..!

cargo lambda build --release --target aarch64-unknown-linux-gnu.2.26
cargo lambda deploy --runtime provided.al2

参考

Discussion