はじめに
こんにちは、沖縄のコロナ状況が心配なBFT名古屋支店マカビです!
AWS LambdaでPythonの外部ライブラリを利用するために行ったことをご紹介します。
備忘録のようなものになりますが、参考にしてください!
事前情報
- AWS Lambdaでは、Pythonの標準ライブラリまたはAWS SDK for Pythonしか利用できない
- AWS Lambdaでは、pipコマンドを使用して外部ライブラリをインストールすることができない
- AWS Lambdaで外部ライブラリを使用するためには以下の3つの方法がある
今回は、2つ目の方法についてまとめています。
手順概要
※上記手順1~4には、pipコマンドとzipコマンドが使用できる環境が必要です。
1.作業ディレクトリの作成
外部ライブラリをインストールするための作業ディレクトリを作成します。
# mkdir Work
2.外部ライブラリのインストール
手順1で作成したディレクトリに移動し、外部ライブラリをインストールします。
-tオプションでインストール先を指定することができます。
今回、zappixという外部ライブラリを作業ディレクトリにインストールしています。
# cd Work/ # pip install zappix -t .
3.Lambda関数の作成
lambda_function.pyを作成します。
中身はAWS Lambdaへアップロード後に修正できるので、今回は空ファイルのみ作成します。
# touch lambda_function.py # chmod 755 lambda_function.py
4.zipコマンドで圧縮
zipコマンドで作業ディレクトリ配下のファイルを圧縮します。
-rオプションで再帰的に扱います。圧縮ファイル名は任意となります。
zip -r zappix.zip *
5.AWS Lambdaにアップロード
アップロード先はランタイムがPythonのAWS Lambdaであることに注意してください。
- コードソースの右側にある「アップロード元」から「.zipファイル」を選択します。
AWS Lambdaへアップロード - 圧縮ファイルを選択し、「保存」をクリックします。
- 最後にlambda_function.pyのコードを書けば完了です。
※不要なファイル(初期に作成されるlambda_function.pyなど)を削除してください。
まとめ
AWS Lambdaで外部ライブラリを利用するために行うことを紹介しました。
アップロードしても外部ライブラリが利用できない場合は、AWS Lambdaのフォルダ構成(モジュールをimportするときどこからみているのか)を再度確認してみてください。