LoginSignup
2
3

More than 1 year has passed since last update.

AWS LambdaにPythonサードパーティ製ライブラリを入れる

Posted at

はじめに

AWS Lambda はサーバレスでイベント駆動型のコンピューティングサービスであり、非常に手軽に使えるサービスとなっている。Amazon S3 のような AWS の他サービスから Lambda をトリガーすることもでき、使い勝手が良いのだがサードパーティ製ライブラリを扱う際にはひと手間かかってしまう。そこで本記事では、Python のサードパーティ製ライブラリを Lambda で扱うための方法を紹介する。How to use external libraries in Lambda FunctionManaging external libraries in AWS lambda functions を参考にした。公式ドキュメントはこちら

準備

まず Lambda を準備する。はじめにで述べた S3 にファイルが置かれるとそれをトリガーに Lambda が実行されるようなものはチュートリアル: Amazon S3 トリガーを使用して Lambda 関数を呼び出すを参考にすれば作成可能。ランタイムは Python3.7 とした。

次に扱いたいライブラリの zip ファイルを作成する。以降、このファイルを読み込んでレイヤーを作成し、Lambda に追加することでライブラリを扱えるようになる。具体的な手順は以下。仮想環境など、仮に環境が変わっても問題ない状況で行うのが望ましい。今回はライブラリとして FastAPI をインストールする。

$ mkdir -p build/python/lib/python3.7/site-packages
$ pip install fastapi -t build/python/lib/python3.7/site-packages

上記の python フォルダを zip ファイルにしておく。

レイヤー作成・追加

AWS マネジメントコンソール上で操作をしていく。まずレイヤーの作成を行う。左側のナビゲーションメニューから「レイヤー」を選択し、画面右上「レイヤーの作成」をクリック。以下画像のように、名前・ランタイムの設定、さらに「.zip ファイルをアップロード」を選択して先程作成した zip ファイルをアップロードし、「作成」をクリック。

create_layer.png

作成後に以下のような画面が出るので、バージョン ARN をコピーしておく。

version.png

次にレイヤーの追加を行う。左側のナビゲーションメニューから「関数」を選択し、レイヤーを追加したい Lambda 関数を選択。画面下へスクロールし、「レイヤーの追加」を選択。以下画像のように、「ARN を指定」を選択し、先ほどコピーしたバージョン ARN を入力して「追加」をクリック。

以上で、サードパーティ製ライブラリを扱えるようになる。

おわりに

AWS Lambda にて、サードパーティ製ライブラリを扱えるよう関数にレイヤーを追加した。もっと Lambda を活用していきたい。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3