今回は AWS LambdaでPandasを使う方法を紹介します 。
AWS Lambda はデフォルトでは、外部ライブラリーは使用できません。ですがPandasのようなメジャーなライブラリーに関しては AWS がすでに準備をしているレイヤーというものを使用することで、利用が可能になります。
今回はその使い方を見ていきたいと思います。
関数の作成
まずは AWS のコンソールにログインをし、Lambdaを選択します。
Lambdaの画面に移動すると関数を作成というボタンがあるのでそちらをクリックして関数を作成します。
関数は1から作成を選択し、ランタイムをPythonに設定しておきます。
Pandasが使えることを確認できればどのようなコードでも構いませんが、例えばサンプルとして次のようなコードを、lambda_function.pyに記入します。
import pandas as pd
def lambda_handler(event, context):
# Pandasデータフレームの作成
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
# データフレームの内容をJSON形式に変換
result = df.to_dict(orient='records')
# 結果を返す
return {
'statusCode': 200,
'body': result
}
入力した内容は、deployをクリックすることで反映されます。
このままテストを実行すると、Pandasが存在しないというエラーが発生します。
レイヤーの選択
Lambdaの関数画面の少し上の方に、レイヤーという部分がありますのでクリックするとレイヤー選択の画面に移動します。あるいはスクロールでここに移動しても大丈夫です。
レイヤーの追加部分をクリックすると、レイヤーを追加することができます。
今回は AWS が準備している、AWSSDK-Pandasというレイヤーを選択します。
このレイヤーを使用することでPandasを使うことが可能になります。
バージョン指定して追加します。
AWS が準備していない 外部ライブラリを使いたい場合は、自分でライブラリーを入れたフォルダを作成し、そのフォルダをzipファイルにしてアップロードすることで、カスタムレイヤーを作成できます。
Lambdaのメニューのレイヤーを選択します。
レイヤーのページに遷移するので、レイヤーの作成からzipファイルをアップロードして、レイヤーを登録できます。
テストの実行
これを使って、テストを実行すれば、無事Pandasが使えるようになりました。