created: 2020-11-19T21:44:01.000Z

cエクステンションを使っているpythonパッケージをlambdaで動くようビルドする

cエクステンションを使っているpythonパッケージをビルドするとビルドしたプラットフォーム固有のwheelファイルが生成される。 つまりLambda(Linux)上で動かしたいバイナリをビルドするときにmacOS上でやってしまうとうまくいかないということである。

macを使いながらLambda向けのwheelを得るには、Lambda環境に似せたDockerイメージを使ってそのなかでビルドする。

このコマンドでLambda向けのwheelファイルを作ることができる。

$ docker run --rm --volume $(pwd):/var/task \
    lambci/lambda:build-python3.8 \
    pip wheel {{ modulename }} -w /var/task

--volume $(pwd):/var/task でコンテナ内:/var/taskに生成したファイルがホスト側の今いるディレクトリに置かれるのがミソ。

詳説 データベース ―ストレージエンジンと分散データシステムの仕組み
[ad] 詳説 データベース ―ストレージエンジンと分散データシステムの仕組み
Alex Petrov, 小林 隆浩 (単行本(ソフトカバー))