まず、Amazon Lambda Layer
とは下記のものです。
一言で言えば、複数のLambda関数でライブラリを共有できる仕組みです。
Lambda の Python は標準である程度ライブラリが利用できるようになってますが、 pandas や numpy 、 requests など利用できないライブラリもあります。
「ライブラリを追加したい + 複数のLambdaで共有したい」ときに Amazon Lambda Layer
を活用すると便利になります。
また、既存のライブラリ以外にも独自で作成したライブラリもLayer化すれば共有できるのでいい感じです。
手順¶
- ライブラリを ZIP にまとめる
- AWS Lambda から レイヤーの作成を行う
- Lambda関数からレイヤーを選択する
以下、 requests を例に説明します。
1. ライブラリを ZIP にまとめる¶
ターミナル等から任意のディレクトリで以下を実行する。
2. AWS Lambda から レイヤーの作成を行う¶
- AWS Lambdaのコンソールから 2.
その他リリース > レイヤー
を選択する。 - 画面右上の
レイヤーの作成
ボタンからレイヤーの作成を行う。 - 各項目を適当に入力して、さっき作成したZIPファイルをアップロードし、
作成
ボタンを押す。これでレイヤーの作成は完了です。
3. Lambda関数からレイヤーを選択する¶
- requests を使いたいLambda関数を開き、
関数の概要
のところにある Layers を選択する。 レイヤーの追加
ボタンからさっき作成したレイヤーを選択する。import requests
を定義すれば、利用できます。