「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > AWS Lambda 関数で Pandas(ライブラリ) をインポートする方法 - AWS Lambda Layers

AWS Lambda 関数で Pandas(ライブラリ) をインポートする方法 - AWS Lambda Layers

2024 年 11 月 8 日に公開
ブラウズ:409

AWS Lambda 関数で Python スクリプトを実行する必要があるときに、次のエラーが発生したと想像してください ?

{
  "errorMessage": "Unable to import module 'lambda_function': No module named 'pandas',
  "errorType": "Runtime.ImportModuleError"
  ...
}

これはよくある間違いなので心配しないでください。これほど長くするつもりはありません

AWS Lambda Functions に Pandas をインポートするにはどうすればよいですか?

いくつかの方法がありますが、AWS Lambda 関数にパンダをインポートする最も簡単な方法を紹介します。Lambda レイヤーを追加することです ?

AWS Lambda レイヤーとは何ですか?

それは?ライブラリ、依存関係などの追加コードを含む Lambda 関数のチーズ層

簡単な言葉で言うと

AWS Lambda レイヤーは、関数の構成要素のようなものです。 想像してみてください プロジェクトを完了するには追加のツール (Pandas ライブラリなど) が必要です。これらすべてのツールをすべての単一プロジェクト内に詰め込む (スペースと時間を無駄にする) 代わりに、AWS ではツールのレイヤー (ライブラリ、依存関係、または共有コード) を作成できます。これらのレイヤーはメイン関数の外側にありますが、関数が必要とするときにいつでも利用できます。

要するに、Lambda レイヤーは次のような場合に役立ちます:

メイン ロジックを追加のライブラリから分離することで、コード内のスペースを節約します。
複数の Lambda 関数にわたってライブラリとコードを再利用します。
コア関数のコードを変更することなく、依存関係を簡単に更新または管理できます。

レイヤーは、関数がスムーズに動作するために必要なものすべてを保持する、Lambda 関数に付属する追加の保管ボックスと考えてください。メインコードを乱雑にすることなく、関数に複数のレイヤーを積み重ねることができます。

Lambda 関数レイヤーを追加して Panda をインポートする手順

Lambda 関数で Pandas を正常に実行するには 3 つのステップしか必要ありません

ステップ 1 - AWS マネジメントコンソールから Lambda 関数を開く

ご覧のとおり、Lambda 関数の名前の下にオプション Layers があります。私の場合、それは "import-pandas-function" で、レイヤー数は 0

How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

ステップ 2 - AWS Lambda 関数にスクリプトを追加する

このステップはさらに 2 つのステップに分かれています。これは、Pandas コードを含む Python スクリプトを追加し、コードが正しく実行されているかどうかを確認するために JSON でテスト イベントを記述する必要があるためです。

2.1 - Python スクリプトを追加します。このコードをコピーできますか?

import json
import pandas as pd

def lambda_handler(event, context):
    data = event.get('data', [])

    df = pd.DataFrame(data)

    if not df.empty:
        mean_value = df['column_name'].mean()

        result = {
            "mean_value": mean_value,
            "data_shape": df.shape,
            "summary": df.describe().to_dict()
        }
    else:
        result = {
            "message": "Empty DataFrame"
        }

    # Return the response
    return {
        'statusCode': 200,
        'body': json.dumps(result)
    }

2.2 - テスト タブに Json でテスト スクリプトを追加します。このコードをコピーできますか?

{
  "data": [
    {"column_name": 10, "other_column": "A"},
    {"column_name": 20, "other_column": "B"},
    {"column_name": 30, "other_column": "C"},
    {"column_name": 40, "other_column": "D"}
  ]
}

テスト ボタンを押すと、おそらく ?error:-
が表示されます "errorMessage": "モジュール 'lambda_function' をインポートできません: 'pandas' という名前のモジュールがありません,
"errorType": "Runtime.ImportModuleError"
...

ステップ 3 - AWS Lambda レイヤーを追加してコード内で Pandas を正常に実行する

Lambda 関数まで下にスクロールすると、ページの最後に「Layers」という別のセクションが表示されると思います
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

3.1 - 「レイヤーを追加」をクリックします。

[レイヤーの追加] をクリックすると、[関数実行時の設定] と [レイヤーの選択] という 2 つのセクションがあるページが表示されます。
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

3.2 - [AWS レイヤー] をクリックします。

[レイヤーの選択] セクションで 3 つのオプションが表示され、[AWS レイヤー] をクリックします。
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

3.3 - 「AWS レイヤー」を選択します

AWS レイヤーを選択すると、[AWS レイヤー] の下にドロップダウンが表示されます。
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

3.4 - 「AWS レイヤー」と「バージョン」を選択します

「AWS レイヤー」のドロップダウンで -> AWSSDKPandas-Python312
を選択します How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers
「バージョン」のドロップダウンで -> 13(最も多いものを選択)
を選択します How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers
「追加」ボタンをクリックします
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

3.5 - 「機能概要」を確認する

ページが関数の概要に移動すると、関数名「import-pandas-function」の下にレイヤーが追加されていることがわかります
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

ステップ 4 - 機能をテストする

レスポンス "statusCode": 200
を正常に取得しました

{
  "statusCode": 200,
  "body": "{\"mean_value\": 25.0, \"data_shape\": [4, 2], \"summary\": {\"column_name\": {\"count\": 4.0, \"mean\": 25.0, \"std\": 12.909944487358056, \"min\": 10.0, \"25%\": 17.5, \"50%\": 25.0, \"75%\": 32.5, \"max\": 40.0}}}"
}

How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers


コーディングを続けますか?

リリースステートメント この記事は次の場所に転載されています: https://dev.to/heighter/how-to-import-pandaslibrary-in-aws-lambda-functions-aws-lambda-layers-1oen?1 侵害がある場合は、study_golang にご連絡ください。 @163.com 削除
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3