"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > AWS Lambda 함수에서 Pandas(라이브러리)를 가져오는 방법 - AWS Lambda 계층

AWS Lambda 함수에서 Pandas(라이브러리)를 가져오는 방법 - AWS Lambda 계층

2024-11-08에 게시됨
검색:714

AWS Lambda 함수에서 Python 스크립트를 실행해야 하는데 다음 오류가 발생한다고 상상해 보세요.

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

걱정하지 마세요. 이것은 일반적인 오류이므로 길게 설명하지 않겠습니다.

AWS Lambda 함수에서 Pandas를 어떻게 가져오나요?

여러 가지 방법이 있지만 AWS Lambda 함수에서 팬더를 가져오는 가장 쉬운 방법은 Lambda 레이어를 추가하는 것입니다.

AWS Lambda 레이어란 무엇입니까?

그것은? 라이브러리, 종속성 등과 같은 추가 코드를 포함하는 Lambda 함수의 치즈 레이어

간단한 말로

AWS Lambda 레이어는 기능을 위한 빌딩 블록과 같습니다. 프로젝트를 완료하려면 추가 도구(예: Pandas 라이브러리)가 필요하다고 상상해 보세요. 공간과 시간을 낭비하는 모든 단일 프로젝트 내에 모든 도구를 포함하는 대신 AWS를 사용하면 도구 계층(라이브러리, 종속성 또는 공유 코드)을 생성할 수 있습니다. 이러한 레이어는 기본 기능 외부에 있지만 기능에 필요할 때 항상 사용할 수 있습니다.

요컨대, Lambda 레이어는 다음과 같은 이점을 제공합니다.

주 로직을 추가 라이브러리와 분리하여 코드 공간을 절약하세요.
여러 Lambda 함수에서 라이브러리와 코드를 재사용합니다.
핵심 기능 코드를 변경하지 않고도 종속성을 쉽게 업데이트하거나 관리할 수 있습니다.

레이어를 Lambda 함수에 연결된 추가 저장 상자로 생각하면 함수가 원활하게 작동하는 데 필요한 모든 것을 보관할 수 있습니다. 메인 코드를 복잡하게 하지 않고도 함수에 여러 레이어를 쌓을 수 있습니다.

Lambda 함수 계층을 추가하고 Pandas를 가져오는 단계

Lambda 함수에서 Pandas를 성공적으로 실행하려면 단 3단계만 거치면 됩니다.

1단계 - AWS Management Console을 통해 Lambda 함수 열기

보시다시피 Lambda 함수 이름 아래에 레이어 옵션이 있습니다. 제 경우에는 "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"}
  ]
}

테스트 버튼을 누르세요. 아마 ?error:-
가 나타날 것입니다. "errorMessage": "'lambda_function' 모듈을 가져올 수 없습니다: 'pandas'라는 모듈이 없습니다.
"errorType": "Runtime.ImportModuleError"
...

3단계 - AWS Lambda 계층을 추가하여 코드에서 Pandas를 성공적으로 실행

Lambda 함수까지 아래로 스크롤하면 페이지 끝에 "레이어" 별도 섹션이 표시될 수 있습니다.
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