- Lambdaで使うライブラリのインストール手順
- Lambda Layersのアップロード方法
- Lambda Layersを適用する手順
Lambdaで使うライブラリのインストール方法
Lambdaで使うライブラリをインストールにはLambda Layersを使用します。
Lambda LayersはAWSの公式で予め用意されているものや有志の人が作ったものもありますが、既存のものがない場合は自分で作る必要があります。
Lambda Layersは.zipファイルとして作成し、Lambdaにアップロードして使います。
ただし、Lambda Layersのデプロイできる容量は250MB(非圧縮)となっているので、注意が必要です。
Lambda Layersの作成方法は以下の2つです。
今回は amazon/aws-sam-cli-build-image の Docker イメージを使用する方法を解説していきます。
ライブラリのインストール手順
Lambda Layersの作成を公式サイトの手順に従って行います。
dockerイメージのダウンロード
自分の使いたい環境のdocker imageをダウンロードしてください。
公式のdockerのイメージ一覧はこちらで提供されています。
今回はpython3.8の環境を選択しました。
docker pull public.ecr.aws/sam/build-python3.8
requirements.txtを作成する
インストールしたいライブラリの一覧をrequirements.txtに記述します。
pandasをインストールする例を示します。
pandas
Lambda Layersのzipファイルを作成
まず、インストールしたいライブラリを適切なディレクトリ構造で作成します。
docker run -v "$PWD":/var/task "public.ecr.aws/sam/build-python3.8" /bin/sh -c "pip install -r requirements.txt -t python/lib/python3.8/site-packages/; exit"
コマンドが成功するとpythonディレクトリが作成されます。
├ python ├ lib ├ python3.8 ├ site-packages
作成されたディレクトリを.zipファイルに圧縮し、Lambda Layersとして使える形にします。
zip -r mypythonlibs.zip python > /dev/null
コマンドを実行するとmypythonlibs.zipが作成されました。
作成したLambda Layersをアップロード
作成したLambda LayersをAWSにアップロードします。
アップロードの方法には2種類あります。
今回はAWS-cliを使ってアップロード方法を解説していきます。
AWS-cliを使う準備はこちらの記事に掲載しています。

IAMの設定などAWS-cliを使う準備ができていればコマンド1つでアップロードすることができます。
aws lambda publish-layer-version --layer-name mypythonlibs --description "My python libs" --zip-file fileb://mypythonlibs.zip --compatible-runtimes "python3.8"
Lambda Layersを適用
アップロードしたLambda LayersをLambda環境に反映させます。
マネジメントコンソールを操作して設定を行うことができます。
lambdaのサービス画面で「Layers」を選択します。
レイヤーの項目から「レイヤーの追加」を選択します。
「カスタムレイヤー」を選択します。
適用したいレイヤー名を選択します。
適用したいレイヤーのバージョンを選択します。
「追加」を選択するとレイヤーが反映されます。
動作確認
pandasをインポートしてlambdaを実行してみます。
import json
import pandas
def lambda_handler(event, context):
# TODO implement
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
エラーも出ずに動作することを確認できればlayersがうまく適用できています。
Function Logs START RequestId: f6b3376d-0c8e-4fc4-987e-f3f8bf64b1d9 Version: $LATEST END RequestId: f6b3376d-0c8e-4fc4-987e-f3f8bf64b1d9 REPORT RequestId: f6b3376d-0c8e-4fc4-987e-f3f8bf64b1d9 Duration: 1.39 ms Billed Duration: 2 ms Memory Size: 128 MB Max Memory Used: 111 MB Init Duration: 837.75 ms
まとめ
Lambdaでライブラリをインストールする手順について解説しました。
インストールするにはLambda Layersを作成する必要がありました。
Lambda Layers方法はAWS SAMを使う方法とDockerを使う2種類あり、今回はDockerを使った作成を行いました。
Lambda Layersを作成したあとはAWSにアップロードして、適用することができました。
参考文献
コメント