投稿

5月, 2023の投稿を表示しています

better-sqlite3 を AWS の Lambda で動かす

動かない... AWS の Lambda 上で Sqlite を動かしたいと思ったので試してみたが、素直に動かせなかったので動かせるようになるまでの記録を残しておく。 現象 nodejs で Sqlite を動かすために better-sqlite3 をインストールし、 AWS の Lambda にデプロイして実行すると以下のようなエラーが発生し実行ができなかった。 /lib64/libm.so.6: version `GLIBC_2.29' not found どうも nodejs 18 が動いている Amazon Linux 2 の /lib64/libm.so.6 に GLIBC_2.29 が入っていないが、 better-sqlite3 では 2.29 を使っているため実行エラーになってしまっている様子。 ちなみに Amazon Linux 2 の /lib64/libm.so.6 の確認は以下のように行った。 # Amazon Linux 2 のコンテナを起動 > docker run -it --rm --entrypoint "bash" public.ecr.aws/lambda/nodejs:18-x86_64 以下をコンテナ内で実行 > yum install binutils > strings /lib64/libm.so.6 | grep GLIBC_ GLIBC_2.2.5 GLIBC_2.4 GLIBC_2.15 GLIBC_2.18 GLIBC_2.23 GLIBC_2.24 GLIBC_2.25 GLIBC_2.26 GLIBC_PRIVATE GLIBC_2.15 ... 解決方法 AWS Lambda の nodejs 18.X ランタイムが動いている Amazon Linux 2 用に better-sqlite3 をビルドし直した。 ビルド方法 AWS Lambda nodejs 18.X の実行コンテナイメージは公開されているので、それを使ってビルドした。 今回対象としている better-sqlite3 のバージョンは 8.3.0。 Amazon Linux 2 が更新されない限り、これ以降のバージョンを使う場合で...