"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Cómo importar Pandas (biblioteca) en funciones de AWS Lambda - Capas de AWS Lambda

Cómo importar Pandas (biblioteca) en funciones de AWS Lambda - Capas de AWS Lambda

Publicado el 2024-11-08
Navegar:664

Imagina que necesitas ejecutar un script de Python en la función AWS Lambda y obtienes este error.

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

No te preocupes, este es un error común y no voy a extenderme tanto

¿Cómo se importa Pandas en AWS Lambda Functions?

Hay varias formas, pero le daré la forma más sencilla de importar pandas en la función AWS Lambda: ¿agregar una capa Lambda?

¿Qué es la capa AWS Lambda?

Es un ? capa de queso en la función Lambda que contiene código adicional como bibliotecas, dependencias, etc.

En palabras simples

Las capas AWS Lambda son como bloques de construcción para sus funciones. Imagina que necesitas herramientas adicionales (como la biblioteca Pandas) para completar un proyecto. En lugar de empaquetar todas esas herramientas dentro de cada proyecto (lo que desperdicia espacio y tiempo), AWS le permite crear capas de herramientas (bibliotecas, dependencias o código compartido). Estas capas se encuentran fuera de su función principal, pero siempre están disponibles cuando su función las necesita.

En resumen, Lambda Layers te ayuda a:

Ahorre espacio en su código separando la lógica principal de las bibliotecas adicionales.
Reutilice bibliotecas y códigos en múltiples funciones Lambda.
Actualice o administre fácilmente sus dependencias sin cambiar el código de su función principal.

Piense en las capas como una caja de almacenamiento adicional adjunta a su función Lambda, que contiene todo lo que su función necesita para funcionar sin problemas. Puede apilar varias capas en su función sin saturar su código principal.

Pasos para agregar la capa de función Lambda e importar Pandas

Solo se necesitan 3 pasos para ejecutar Pandas en su función Lambda con éxito

Paso 1: abra la función Lambda a través de su consola de administración de AWS

Como puede ver, tenemos una opción Capas bajo el nombre de nuestra función Lambda, en mi caso, es "import-pandas-function" y el recuento de capas es 0

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

Paso 2: agregue un script en su función AWS Lambda

Este paso se divide en dos pasos porque necesitamos agregar un script de Python que contenga algo de código Pandas y escribir un evento de prueba en JSON para verificar si el código se está ejecutando correctamente.

2.1 - Agregar secuencia de comandos Python: ¿puedes copiar este código?

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 - Agregar script de prueba en Json en la pestaña de prueba - ¿puedes copiar este código?

{
  "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"}
  ]
}

Presiona el botón de prueba y probablemente recibas el error:-
"errorMessage": "No se puede importar el módulo 'lambda_function': No hay ningún módulo llamado 'pandas',
"errorType": "Runtime.ImportModuleError"
...

Paso 3: agregue la capa AWS Lambda para ejecutar con éxito Pandas en su código

Desplácese hacia abajo hasta su función Lambda, probablemente pueda ver la sección separada "Capas" al final de la página
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

3.1 - Haga clic en "Agregar una capa"

Después de hacer clic en "Agregar una capa", puede ver la página que tiene un par de secciones "Configuración de tiempo de ejecución de funciones" y "Elegir una capa"
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

3.2 - Haga clic en "Capas de AWS"

Puedes ver tres opciones en la sección "Elegir una capa", haz clic en "Capas de AWS".
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

3.3 - Elija "capas de AWS"

Después de seleccionar las capas de AWS, puede ver el menú desplegable en "Capas de AWS".
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

3.4 - Elija "capas de AWS" y "Versión"

En un menú desplegable de "capas de AWS", seleccione -> AWSSDKPandas-Python312
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers
En un menú desplegable de "Versión", seleccione -> 13 (seleccione la que más)
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers
haga clic en el botón "Agregar"
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

3.5 - Asegúrese de que la "Descripción general de funciones"

Cuando su página se dirige a la descripción general de la función, puede ver que la capa se agrega debajo del nombre de la función "import-pandas-function"
How to Import Pandas(library) in AWS Lambda Functions - AWS Lambda Layers

Paso 4: prueba la función

Obtuviste exitosamente la respuesta "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


¿Seguir codificando?

Declaración de liberación Este artículo se reproduce en: https://dev.to/heighter/how-to-import-pandaslibrary-in-aws-lambda-functions-aws-lambda-layers-1oen?1 Si hay alguna infracción, comuníquese con Study_golang @163.com eliminar
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3