📦

AWS Lambda に外部ライブラリを導入する

に公開

どんな人向けの記事か

  • AWS Lambda に Python ライブラリをインストールして使いたい人
  • AWS Lambda で Import error に悩まされている人
  • Mac を使っている方(Windows の場合も同様の手順でできると思いますが、適宜読み替えてください)

手順

大まかな流れ

  1. ローカル環境に、AWS Lambda に設定した Python バージョンと同じ Python 環境を用意する
  2. ローカル環境で、必要なライブラリを pip install する(一部ライブラリは後述する whl をインストールしてからpip installする)
  3. ローカル環境で、必要なライブラリをすべて詰め込んだフォルダを zip 化する
  4. AWS Lambda で、レイヤーを追加し zip ファイルをアップロードする

1. ローカル環境で、AWS Lambda に設定した Python バージョンと同じ Python 環境を用意する

今回は Python 3.13 環境を作ります
こちら ↓ の記事を参考に、pyenv をインストールして Python 3.13 をインストールしてください
https://zenn.dev/hotani3/articles/setup-python-on-macos

インストールが完了したら、Python -V (V は大文字)と打って 3.13.2 のように表示されれば OK です!

2. ローカル環境で、必要なライブラリをインストールする

今回は JWT 認証を実装するため PyJWTcryptography というライブラリをインストールする前提で進めます
他のライブラリを使用したい場合は、適宜読み替えてください!

まずはこちら ↓ のサイトで、インストールしたいライブラリを検索します
https://pypi.org/

ライブラリのページへ行き、ファイルをダウンロード をクリックすると対応するプラットフォームごとのファイル一覧が表示されます

3. あとは zip ファイル化する

$ zip -r layer.zip python

ちなみに zip ファイルの名前は layer.zip でなくても、なんでも良い

4. AWS Lambda にレイヤーを追加する

以下の手順で進めていく

  1. AWS コンソールの Lambda > その他のリソース > レイヤー へ移動する
  2. レイヤーを作成 をクリック
  3. 名前(なんでも OK)、説明 などを入力して .zip ファイルをアップロードする(先ほど作成した zip ファイル)
  4. 作成 をクリックし、レイヤーを作成する
  5. Lambda の コードセクションの最下部から、レイヤーの追加 をクリック
  6. カスタムレイヤーを選択し、先ほど作成したレイヤーを追加
  7. Lambda にレイヤーが追加されていることを確認し、完了

参考 ↓

https://qiita.com/Bashi50/items/1f72a93dbde23de55dda#レイヤーを追加

GitHubで編集を提案

Discussion