AWS Lambdaで外部ライブラリーを使う方法

IT・プログラミング

今回は 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を使うことが可能になります。
レイヤー設定
AWSPandas
バージョン指定して追加します。
バージョン指定
AWS が準備していない 外部ライブラリを使いたい場合は、自分でライブラリーを入れたフォルダを作成し、そのフォルダをzipファイルにしてアップロードすることで、カスタムレイヤーを作成できます。
Lambdaのメニューのレイヤーを選択します。
レイヤー
レイヤーのページに遷移するので、レイヤーの作成からzipファイルをアップロードして、レイヤーを登録できます。
レイヤーの作成

テストの実行

これを使って、テストを実行すれば、無事Pandasが使えるようになりました。

タイトルとURLをコピーしました