この記事で出来るようになること
結論:外部ライブラリをAWS Lambdaのレイヤーに追加することで、インラインコード編集をできるようにする。
pythonを使用する際に、外部ライブラリを使用することはよくあります。
しかし、Lambda関数自体にローカルでpipしたライブラリファイルをアップロードすると
Lambda 関数「***」のデプロイパッケージが大きすぎて、インラインコード編集を有効にできません。ただし、関数を呼び出すことはできます。
と出てしまう。
すると、インラインコード編集が出来なくなってしまう。
インラインコード編集を使用しない人にとっては問題はないが、便利であるので使える状態にしておきたい。
ローカルで外部ライブラリをzip化する
本記事の例ではLINE APIで使用するline-bot-sdk
を使用できるようにしていくのを例に説明します。
- line-bot-sdkを「line-bot-sdk」ファイルにインストールする
pip install line-bot-sdk -t ./line-bot-sdk/
2.「line-bot-sdk」をzip化させる
line-bot-sdk.zipを作成する
レイヤー作成
-
レイヤーの作成項目を埋める
レイヤーの設定画面で、名前を入力する(説明はどちらでもOK)
.zip ファイルをアップロード
を選択して、アップロード
ボタンから先ほどzip化したファイルを選択する。
項目を埋めたら作成
ボタンを押下する。
Lambdaにレイヤー追加
-
レイヤー追加の項目を埋めて追加
レイヤーソースでARNを指定
を選択する
ARNを指定に先ほどコピーしたレイヤーのARNを張り付けて、検証
ボタンを押下する
説明にレイヤー名が出ればOKなので、追加
ボタンを押下する。
まとめ
外部ライブラリをレイヤーに追加して、レイヤー自体をLambdaに追加することができる。
レイヤーを使用することで以下のようなメリットが考えられます。
- インラインコード編集が使用できる
- 複数のLambdaで簡単に外部ライブラリを使用できる
- 外部ライブラリの管理が容易