AWS Lambdaは、サーバーを構築することなく手軽にプログラムを動かすことができるサービスとして知られています。しかし、LambdaでPythonを実行する際、pandasなどの外部ライブラリはLambdaに事前にinstallされていないため、いずれかの方法でLambdaに外部ライブラリ等をinstallさせる必要があります。
外部ライブラリの追加方法
外部ライブラリを使用できるようにする方法は以下の3つです。
- Lambda レイヤー を使用する方法。
- zip デブロイ を用いる方法。
- コンテナイメージデブロイ を用いる方法。
それぞれの方法にメリット・デメリットがありますが、今回は、最もよく使用されているであろう「2. zip デブロイ を用いる方法。」について詳しく説明します。
zip デブロイを用いる方法
zip デブロイを用いる方法では、Pythonコードと外部ライブラリを一緒にzipファイルにまとめて、それをAWS Lambdaにアップロードします。具体的な手順は以下の通りです。
- Pythonパッケージフォルダを作成します。
- 作成したフォルダ内に移動します。
- 必要なPythonライブラリをインストールします。例えば、
pip install requests -t ./
というコマンドでrequestsライブラリをインストールできます。 - フォルダをzip化します。例えば、
zip -r ../mypackage.zip .
というコマンドでzipファイルを作成できます。
以上の手順で作成したzipファイルをLambdaにアップロードすることで、Lambda関数内で外部ライブラリを利用することが可能になります。
注意点
ただし、LambdaはAmazonlinux2で実行しているため、外部ライブラリがAmazonlinux2用になっていないとエラーが出ることがあります。そのため、外部ライブラリを使用する際は何かしらの方法で外部ライブラリデータをAWS Lambdaに渡す必要があります。
また、一部のライブラリ(例えばPillow)は特定の方法でしかインストールできない場合があります。そのような場合は、適切な方法でライブラリをインストールする必要があります。
以上が、AWS LambdaでPythonの外部モジュールを使用する方法についての説明です。この情報が皆さんの開発に役立つことを願っています。