«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как импортировать Pandas (библиотеку) в функции AWS Lambda — слои AWS Lambda

Как импортировать Pandas (библиотеку) в функции AWS Lambda — слои AWS Lambda

Опубликовано 8 ноября 2024 г.
Просматривать:571

Представьте, что вам нужно запустить скрипт Python для функции AWS Lambda, и вы получаете эту ошибку?

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

Не волнуйтесь, это распространенная ошибка, и я не буду останавливаться на достигнутом

Как импортировать Pandas в функции AWS Lambda?

Есть несколько способов, но я собираюсь предложить вам самый простой способ импортировать pandas в AWS Lambda. Функция Lambda — добавить слой Lambda ?

Что такое лямбда-слой AWS?

Это ? слой сыра в функции Lambda, содержащий дополнительный код, такой как библиотеки, зависимости и т. д.

Простыми словами

Слои AWS Lambda — это строительные блоки для ваших функций. Представьте, вам нужны дополнительные инструменты (например, библиотека Pandas) для завершения проекта. Вместо того, чтобы упаковывать все эти инструменты в каждый отдельный проект (что тратит впустую пространство и время), AWS позволяет создавать уровни инструментов (библиотеки, зависимости или общий код). Эти слои находятся за пределами вашей основной функции, но всегда доступны, когда они нужны вашей функции.

Короче говоря, лямбда-слои помогут вам:

Экономьте место в коде, отделив основную логику от дополнительных библиотек.
Повторно используйте библиотеки и код в нескольких функциях Lambda.
Легко обновляйте свои зависимости или управляйте ими, не меняя код основной функции.

Думайте о слоях как о дополнительном ящике для хранения, прикрепленном к вашей функции Lambda, в котором хранится все, что нужно вашей функции для бесперебойной работы. Вы можете накладывать несколько слоев на свою функцию, не загромождая основной код.

Шаги по добавлению функционального слоя Lambda и импорту Pandas

Для успешного запуска Pandas в вашей лямбда-функции требуется всего 3 шага

Шаг 1. Откройте функцию Lambda через консоль управления AWS.

Как вы можете видеть, у нас есть опция Слои под именем нашей лямбда-функции, в моем случае это "import-pandas-function", а количество слоев равно &&&]0

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

Шаг 2. Добавьте скрипт в вашу лямбда-функцию AWS.

Этот шаг разделен на два этапа, поскольку нам нужно добавить скрипт Python, содержащий некоторый код Pandas, и написать тестовое событие в формате 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 в вашем коде

Прокрутите вниз до лямбда-функции, вы, вероятно, увидите отдельный раздел «Слои» в конце страницы
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 Если есть какие-либо нарушения, свяжитесь с Study_golang. @163.com удалить
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3