雲のメモ帳

猫とクラウドと旅行が好きなインフラエンジニアです。 日々の調べたことや興味が持ったことをこのブログにアウトプットします。

Lambda Layer用PythonパッケージをWindows環境で簡単に作成する

これはなに?

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.2.4

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化します。 f:id:ykoomaru:20210806231226p:plain

3. LambdaLayerに登録する

ZIPができたら後はLambda Layerに登録すれば完了です。
実際にLambdaを作成して、Layerを設定の上でimportできるか確認してください。

f:id:ykoomaru:20210806231537p:plain

最後に

今までLambdaLayer用のパッケージ作成するのに、EC2立ててたりしたので、Dockerで楽に作成できるようになって最高な気持ちです。