2
0

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.

AWS Lambda Layerを利用しようとしてハマった話

Last updated at Posted at 2023-11-14

はじめに

AWS Lambdaにてサードパーティ製のライブラリを使いたいと思って調べたところ
Lambda Layerを使うとLambda関数間でライブラリを共有できるとのこと
じゃあ実際に使ってみようとしてハマった話です。

結論

Lambda Layerへアップロードするローカルのフォルダ名は「python」にする

Lambda関数はLayerを読み込む実行パスとして「opt/python/Layer」となるらしく
圧縮前のディレクトリ名は「python」としておく必要があった。

手順

今回利用したかったのは「line-bot-sdk」なので、これを例にしていきます。

ライブラリのインストール(ローカルへ)

pip install line-bot-sdk -t python/

pythonディレクトリは別途作成してください。

zipファイルに圧縮

zip -r layer.zip python

Lambda Layerへアップロード

aws lambda publish-layer-version --layer-name your-layer-name --zip-file fileb://layer.zip --compatible-runtimes python3.11 --region us-east-1

「your-layer-name」は自分のレイヤー名を指定してください。
リージョンもLambda関数のあるリージョンへと変更してください。
ランタイムはLambda関数のランタイムと合わせるようにしてください。

※AWS Console上からzipファイルをアップロードでも問題ないと思います。

Lambda関数へLayerを追加する

AWS ConsoleよりLayerを追加したいLambda関数を選択して、追加する。

これで、Lambda関数にて、Layerへ含めたサードパーティ製のライブラリがimportできると思います。

おわりに

かなり初歩的ですが、同じように詰まることがあるの方もいるのではないかと思い、
記事にしました。(私はこれに気付かず2時間ほど時間取られました・・)

間違い等ありましたら、コメントにてご指摘いただければ幸いです。

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?