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

Nov 20, 2020 06:44 · 313 words · 1 minute read

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

tweet Share