背景
standard-library等のLambdaに標準で同梱されているモジュール以外を使用する場合には、import対象のモジュールを含めたデプロイパッケージを作成しなければならない。
解決方法
pipでカレントディレクトリにライブラリをインストールし、まとめてzip化してアップロードすることでライブラリが使えるようになる。
# 対象ライブラリのカレントディレクトリへのダウンロード
$ pip install requests -t ./
# ダウンロードしたファイルの確認
$ ls
bin chardet-3.0.4.dist-info requests
certifi get_xbrl.py requests-2.22.0.dist-info
certifi-2019.6.16.dist-info idna urllib3
chardet idna-2.8.dist-info urllib3-1.25.3.dist-info
# 不要なファイルの削除
$ rm -rf *.dist-info
$ rm -rf bin
# デプロイパッケージの作成
zip -r lambda_function.zip ./*
- Lambdaからzipでのアップロードを選択すると以下のようにコードが階層構造で作成され、対象のライブラリが含まれていることが確認できる