📦
AWS Lambda に外部ライブラリを導入する
どんな人向けの記事か
- AWS Lambda に Python ライブラリをインストールして使いたい人
- AWS Lambda で Import error に悩まされている人
- Mac を使っている方(Windows の場合も同様の手順でできると思いますが、適宜読み替えてください)
手順
大まかな流れ
- ローカル環境に、AWS Lambda に設定した Python バージョンと同じ Python 環境を用意する
- ローカル環境で、必要なライブラリを
pip install
する(一部ライブラリは後述する whl をインストールしてからpip install
する) - ローカル環境で、必要なライブラリをすべて詰め込んだフォルダを zip 化する
- AWS Lambda で、レイヤーを追加し zip ファイルをアップロードする
1. ローカル環境で、AWS Lambda に設定した Python バージョンと同じ Python 環境を用意する
今回は Python 3.13 環境を作ります
こちら ↓ の記事を参考に、pyenv をインストールして Python 3.13 をインストールしてください
インストールが完了したら、Python -V
(V は大文字)と打って 3.13.2
のように表示されれば OK です!
2. ローカル環境で、必要なライブラリをインストールする
今回は JWT 認証を実装するため PyJWT
と cryptography
というライブラリをインストールする前提で進めます
他のライブラリを使用したい場合は、適宜読み替えてください!
まずはこちら ↓ のサイトで、インストールしたいライブラリを検索します
ライブラリのページへ行き、ファイルをダウンロード をクリックすると対応するプラットフォームごとのファイル一覧が表示されます
3. あとは zip ファイル化する
$ zip -r layer.zip python
ちなみに zip ファイルの名前は layer.zip
でなくても、なんでも良い
4. AWS Lambda にレイヤーを追加する
以下の手順で進めていく
- AWS コンソールの Lambda > その他のリソース > レイヤー へ移動する
- レイヤーを作成 をクリック
- 名前(なんでも OK)、説明 などを入力して .zip ファイルをアップロードする(先ほど作成した zip ファイル)
- 作成 をクリックし、レイヤーを作成する
- Lambda の コードセクションの最下部から、レイヤーの追加 をクリック
- カスタムレイヤーを選択し、先ほど作成したレイヤーを追加
- Lambda にレイヤーが追加されていることを確認し、完了
参考 ↓
Discussion