Python을 사용하여 Lambda 함수 빌드 - AWS Lambda

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Python을 사용하여 Lambda 함수 빌드

AWS Lambda에서 Python 코드를 실행할 수 있습니다. Lambda는 이벤트 처리를 위해 코드를 실행하는 Python을 위한 런타임을 제공합니다. 코드는 사용자가 관리하는 AWS Identity and Access Management(IAM) 역할의 자격 증명을 사용하여 SDK for Python(Boto3)이 포함된 환경에서 실행됩니다.

Lambda는 다음과 같은 Python 런타임을 지원합니다.

Python
명칭 식별자 SDK 운영 체제 사용 중단 날짜 블록 함수 생성 블록 함수 업데이트

Python 3.12

python3.12

보토3-1.28.72 보토코어-1.31.72

Amazon Linux 2023

Python 3.11

python3.11

boto3-1.27.1 botocore-1.30.1

Amazon Linux 2

Python 3.10

python3.10

boto3-1.26.90 botocore-1.29.90

Amazon Linux 2

Python 3.9

python3.9

boto3-1.26.90 botocore-1.29.90

Amazon Linux 2

Python 3.8

python3.8

boto3-1.26.90 botocore-1.29.90

Amazon Linux 2

2024년 10월 14일

2024년 11월 13일

2025년 1월 7일

참고

이 표의 런타임 정보는 지속적으로 업데이트됩니다. Lambda의 AWS SDK 사용에 대한 자세한 내용은 Serverless Land의 Managing AWS SDKs in Lambda functions를 참조하세요.

Python 함수를 만들려면
  1. Lambda 콘솔을 엽니다.

  2. 함수 생성을 선택합니다.

  3. 다음 설정을 구성합니다:

    • 함수 이름: 함수의 이름을 입력합니다.

    • 런타임: Python 3.12를 선택합니다.

  4. 함수 생성을 선택합니다.

  5. 테스트 이벤트를 구성하려면 테스트를 선택합니다.

  6. 이벤트 이름test를 입력합니다.

  7. 변경 사항 저장을 선택합니다.

  8. 함수를 호출하려면 테스트를 선택합니다.

콘솔은 lambda_function(이)라는 단일 소스 파일로 Lambda 함수를 생성합니다. 이 파일을 편집하고 기본 제공 코드 편집기에서 더 많은 파일을 추가할 수 있습니다. 변경 사항을 저장하려면 [Save]를 선택합니다. 그런 다음 코드를 실행하려면 테스트를 선택합니다.

참고

Lambda 콘솔은 AWS Cloud9를 사용하여 브라우저에서 통합 개발 환경(IDE)을 제공합니다. AWS Cloud9을 사용하면 자신의 환경에서 Lambda 함수를 개발할 수도 있습니다. 자세한 내용은 AWS Cloud9 사용 설명서의 Working with AWS Lambda functions using the AWS Toolkit을 참조하세요.

참고

로컬 환경에서 애플리케이션 개발을 시작하려면 이 가이드의 리포지토리에 있는 샘플 애플리케이션 중 하나를 배포하십시오. GitHub

Python의 샘플 Lambda 애플리케이션
  • blank-python – 로깅, 환경 변수, AWS X-Ray 추적, 계층, 단위 테스트 및 AWS SDK를 사용하는 방법을 보여주는 Python 함수입니다.

Lambda 함수는 로그 로그 그룹과 함께 제공됩니다 CloudWatch . 함수 런타임은 각 호출에 대한 세부 정보를 Logs로 전송합니다. CloudWatch 호출 중 함수가 출력하는 로그를 전달합니다. 함수가 오류를 반환하면 Lambda은 오류에 서식을 지정한 후 이를 호출자에게 반환합니다.

응답 형식

Python 3.12 이상 버전의 Python 런타임에서 함수는 JSON 응답의 일부로 유니코드 문자를 반환합니다. 이전 Python 런타임에서는 응답에 유니코드 문자의 이스케이프된 시퀀스를 반환했습니다. 예를 들어, Python 3.11에서 'こんにちは'와 같은 유니코드 문자열을 반환하는 경우 유니코드 문자를 이스케이프하고 '\u3053\u3093\u306b\u3061\u306f'를 반환합니다. Python 3.12 런타임은 원래 'こんにちは'를 반환합니다.

유니코드 응답을 사용하면 Lambda 응답 크기가 줄어들어 동기 함수에서 더 큰 응답을 최대 6MB의 페이로드 크기에 더 쉽게 맞출 수 있습니다. 이전 예제에서 이스케이프된 버전은 32바이트이며, 유니코드 문자열의 경우 17바이트입니다.

Python 3.12로 업그레이드할 때 새 응답 형식을 고려하여 코드를 조정해야 할 수 있습니다. 직접 호출자에서 이스케이프된 유니코드를 예상하는 경우 반환 함수에 코드를 추가하여 유니코드를 수동으로 이스케이프하거나 직접 호출자가 유니코드 반환을 처리하도록 조정해야 합니다.

확장의 정상 종료

Python 3.12 이상 버전의 Python 런타임에서는 외부 확장을 포함하는 함수에 대해 향상된 정상 종료 기능을 제공합니다. Lambda는 실행 환경을 종료할 때 SIGTERM 신호를 런타임에 전송한 다음, SHUTDOWN 이벤트를 등록된 각 외부 확장에 전송합니다. Lambda 함수에서 SIGTERM 신호를 포착하여 함수에서 생성된 데이터베이스 연결과 같은 리소스를 정리할 수 있습니다.

실행 환경 수명 주기에 대한 자세한 내용은 Lambda 실행 환경 섹션을 참조하세요. 확장 프로그램과 함께 정상 종료를 사용하는 방법의 예는 샘플 리포지토리를 참조하십시오. AWS GitHub