3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Lambdaでpythonの外部ライブラリをレイヤーで使用する方法

Last updated at Posted at 2022-07-23

この記事で出来るようになること

結論:外部ライブラリをAWS Lambdaのレイヤーに追加することで、インラインコード編集をできるようにする。

pythonを使用する際に、外部ライブラリを使用することはよくあります。
しかし、Lambda関数自体にローカルでpipしたライブラリファイルをアップロードすると
Lambda 関数「***」のデプロイパッケージが大きすぎて、インラインコード編集を有効にできません。ただし、関数を呼び出すことはできます。
と出てしまう。
image.png
すると、インラインコード編集が出来なくなってしまう。
インラインコード編集を使用しない人にとっては問題はないが、便利であるので使える状態にしておきたい。

ローカルで外部ライブラリをzip化する

本記事の例ではLINE APIで使用するline-bot-sdkを使用できるようにしていくのを例に説明します。

  1. line-bot-sdkを「line-bot-sdk」ファイルにインストールする
pip install line-bot-sdk -t ./line-bot-sdk/

2.「line-bot-sdk」をzip化させる
 line-bot-sdk.zipを作成する

レイヤー作成

  1. Lambda > レイヤーから、レイヤーの作成ボタンを押下する
    image.png

  2. レイヤーの作成項目を埋める
    レイヤーの設定画面で、名前を入力する(説明はどちらでもOK)
    .zip ファイルをアップロードを選択して、アップロードボタンから先ほどzip化したファイルを選択する。
    項目を埋めたら作成ボタンを押下する。
    image.png

  3. 作成したレイヤーから、バージョンARNをコピーしておく
    image.png

Lambdaにレイヤー追加

  1. レイヤーを追加するLambda関数へ行く
    現在はLayersの部分が0になっている
    image.png

  2. コードタブの最下部にあるレイヤー部分のレイヤーの追加を押下する
    image.png

  3. レイヤー追加の項目を埋めて追加
    レイヤーソースでARNを指定を選択する
    ARNを指定に先ほどコピーしたレイヤーのARNを張り付けて、検証ボタンを押下する
    説明にレイヤー名が出ればOKなので、追加ボタンを押下する。
    image.png

  4. Lambda関数のレイヤー一覧から追加できていることを確認できる
    image.png

まとめ

外部ライブラリをレイヤーに追加して、レイヤー自体をLambdaに追加することができる。
レイヤーを使用することで以下のようなメリットが考えられます。

  • インラインコード編集が使用できる
  • 複数のLambdaで簡単に外部ライブラリを使用できる
  • 外部ライブラリの管理が容易
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?