はじめに
https://aws.amazon.com/jp/lambda/
最近AWS Lambdaを使用する機会が増え、Python3.7のデプロイパッケージのビルド処理を汎用化したので共有します。
AWS Lambdaではライブラリなどを一つのzipファイルにまとめたものをパッケージとしてアップロードする必要があります。
Windowsで開発する場合、OSの違いからライブラリをそのままzipするだけだと動かない場合もあります。
そこで、Dockerを使ってLambdaの環境を再現したうえでパッケージを作成するという処理を実装してみました。
ソース
https://github.com/yusukey0720/lambda_packager_python
↑にいい感じにまとめてみたので参考にしてください。
使い方
※Dockerがインストールされていること。
requirements.txt
- ここに必要なライブラリを記載。
./src/requirements.txt}
numpy
pandas
lambda_function.py
- ここに処理を記載する。
./src/lambda_function.py}
def lambda_handler(event, context):
# some functions
ビルドする
- 下記のコマンドからビルド処理を実行する。
- Dockerが立ち上がる
- requirementsをインストール
- ソースをzipする
- distに出力される
sh build.sh
デプロイ
- distに出力されたファイルをs3にアップロード
- AWSコンソール画面からs3のパスを入力して保存
さいごに
やはりDockerは便利ですね。
s3のアップロードやzipの反映まで自動化できるとより便利になるなと感じました。
不明点等あればコメントください。