これはなに?
Lambda Layer用PythonパッケージをWindowsの環境で作成しようとすると環境準備が結構大変なので、Dockerを使って楽に作成する方法のメモです。
環境
- Microsoft Windows [Version 10.0.19042.1110]
- Docker for Windows : v20.10.7
手順
1. Requirements Files を作成する
・requirements.txtという名前のファイルを任意のフォルダ内に作成する
requirements.txtの中身は、pip install で指定する名称と同じです。このファイルで指定したパッケージがLambda Layer用Pythonパッケージとして最終的にZIP化されます。
<例>
requests pandas datetime
User Guide - pip documentation v21.3.1
2. LambdaLayer用Pythonパッケージを作成する
・requirements.txtファイルがある階層で、以下のコマンドを実行する
docker run --rm -v "%CD%":/var/task lambci/lambda:build-python3.8 pip install -r requirements.txt -t python/lib/python3.8/site-packages/
LambdaのDockerイメージをプルしてきて、その中でパッケージを作成しています。
Lambda Layerを適用するLambdaのバージョンによって、実行するパラメータを合わせる必要がある(コマンド例はpython3.8 )ので注意してください。
Docker Hub
・作成されたファイルをZIP化する
適当なソフトで作成されたフォルダをZIP化します。
3. LambdaLayerに登録する
ZIPができたら後はLambda Layerに登録すれば完了です。
実際にLambdaを作成して、Layerを設定の上でimportできるか確認してください。
最後に
今までLambdaLayer用のパッケージ作成するのに、EC2立ててたりしたので、Dockerで楽に作成できるようになって最高な気持ちです。