はじめに
Lambdaでrequestsモジュールを使おうとしたところ下記のエラーが発生。
エラー対象の備忘録も兼ねて本記事を作成。
error
"Unable to import module 'lambda_function': No module named 'requests'"
原因
Layerを追加できてないかったから。
環境
- windows
- python 3.12
やったこと
ローカルでpythonフォルダを作成しライブラリをインストール。
zip化したpythonフォルダをLambdaのLayerに追加する。
pythonフォルダを作成
フォルダを作成します。
mkdir python
フォルダ名はpython
とすることに注意。
参考:https://soypocket.com/it/aws-lambda-python-error-no-module-named/
モジュールのインストール
requests モジュールをインストールします。
pip install -t python requests
zipファイル化
対象のpythonフォルダをzip化します。
GUI操作でzipファイル化したのでコマンドは省略します。
レイヤーの作成
Lambda > レイヤー > レイヤーの作成 からzipファイルをアップロードします。
項目は以下の内容で設定。
- 互換性のあるランタイム:python3.12
- 互換性のあるアーキテクチャ:x86_64
レイヤーの選択 & 実行
対象のLambda関数の「レイヤーの選択」から作成したレイヤーを選択します。
ここまでできたらLambdaを実行してエラー出ないことを確認できました。
参考