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に生成したファイルがホスト側の今いるディレクトリに置かれるのがミソ。