”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何在 AWS Lambda 函数中导入 Pandas(库) - AWS Lambda Layers

如何在 AWS Lambda 函数中导入 Pandas(库) - AWS Lambda Layers

发布于2024-11-08
浏览:307

假设您需要在 AWS Lambda 函数上运行 Python 脚本,然后收到此错误?

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

别担心,这是一个常见的错误,我不会说这么长

如何在 AWS Lambda Functions 中导入 Pandas?

有多种方法,但我将为您提供在 AWS Lambda 函数中导入 pandas 的最简单方法是添加 Lambda 层?

什么是 AWS Lambda 层?

这是一个? Lambda 函数中的奶酪层包含额外的代码,如库、依赖项等。

简单来说

AWS Lambda Layers 就像您的函数的构建块。 想象一下您需要额外的工具(如 Pandas 库)来完成一个项目。 AWS 允许您创建工具层(库、依赖项或共享代码),而不是将所有这些工具打包到每个项目中(这会浪费空间和时间)。这些层位于您的主要功能之外,但在您的功能需要时始终可用。

简而言之,Lambda Layers 可以帮助您:

通过将主逻辑与额外的库分开来节省代码空间。
跨多个 Lambda 函数重用库和代码。
轻松更新或管理您的依赖项,而无需更改核心功能代码。

将层视为附加到 Lambda 函数的额外存储盒,可容纳函数顺利运行所需的所有内容。您可以在函数上堆叠多个层,而不会使主代码变得混乱。

添加 Lambda 函数层和导入 Pandas 的步骤

只需 3 步即可在 Lambda 函数中成功运行 Pandas

第 1 步 - 通过 AWS 管理控制台打开 Lambda 函数

如您所见,我们的 Lambda 函数名称下有一个选项 Layers,在我的例子中,它是 “import-pandas-function”,层数为 0

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

第 2 步 - 在 AWS Lambda 函数中添加脚本

这一步又分为两步,因为我们需要添加一个包含一些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"}
  ]
}

按下测试按钮,您可能会收到错误:-
“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 - 单击“添加图层”

点击“添加图层”后,您可以看到页面,其中有几个部分“函数运行时设置”和“选择图层”
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

3.2 - 单击“AWS 层”

您可以在“选择层”部分中看到三个选项,单击“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如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3