AWS Lambda – Python 함수
이 장에서는 Python으로 간단한 AWS Lambda 함수를 생성하고 세부 사항에 따라 작동 개념을 이해합니다.
AWS에서 Lambda 함수 생성 작업을 진행하기 전에 Python에 대한 AWS 도구 키트 지원이 필요합니다. 이를 위해 아래 단계를 따르고 첨부 된 해당 스크린 샷을 관찰하십시오.
1 단계
AWS 콘솔에 로그인하고 Lambda 함수를 생성하고 언어를 Python으로 선택합니다.
2 단계
이제 Create function버튼을 클릭하고 Python으로 간단한 AWS Lambda를 생성하기위한 세부 정보를 입력합니다. 이 코드는 메시지를 반환합니다.Hello from Lambda using Python 여기에 표시된 것처럼 보입니다-
3 단계
이제 변경 사항을 저장하고 코드를 테스트하여 출력을 확인합니다. UI의 테스트 버튼을 사용하여 AWS 콘솔에서 테스트 할 때 다음 출력 및 로그가 표시되어야합니다.
4 단계
이제 모든 편집기 또는 Python 용 IDE에서 코드를 작성할 수 있습니다. 여기서는 코드 작성을 위해 Visual Studio 코드를 사용합니다. 나중에 파일을 압축하고 AWS 콘솔에 업로드해야합니다.
여기에서는 코드를 압축하고 AWS 콘솔을 사용했습니다.
5 단계
이제 선택 Upload a .ZIP file 아래 표시된 옵션-
Python 용 처리기 세부 정보
핸들러는 파일 이름 뒤에 함수 이름이 와야합니다. 위의 경우 파일 이름은hellopython.py 함수의 이름은 my_handler; 그래서 핸들러는 hellopython.my_handler.
업로드가 완료되고 변경 사항이 저장되면 실제로 AWS Lambda 콘솔의 온라인 편집기에 zip 파일의 세부 정보가 표시됩니다. 이제 출력과 로그를보기 위해 코드를 테스트 해 보겠습니다.
이제 다음 샘플 코드를 사용하여 Lambda 함수의 세부 사항을 이해하겠습니다.
def my_handler(event, context):
return "aws lambda in python using zip file"
위 코드에서 함수 이름 my_handler에는 2 개의 매개 변수, 이벤트 및 컨텍스트가 있습니다.
Python의 컨텍스트 객체
컨텍스트 객체는 Lambda 함수 이름, 남은 시간 (밀리 초), 요청 ID, 클라우드 감시 그룹 이름, 시간 초과 세부 정보 등과 같은 세부 정보를 제공합니다.
컨텍스트 객체에서 사용할 수있는 메서드와 속성은 아래 표에 나와 있습니다.
Sr. 아니요 | 방법 이름 및 설명 |
---|---|
1 | get_remaining_time_in_millis() 이 메서드는 람다 함수가 함수를 종료 할 때까지 남은 시간을 밀리 초 단위로 제공합니다. |
Sr. 아니요 | 속성 및 설명 |
---|---|
1 | function_name 이것은 aws lambda 함수 이름을 제공합니다. |
2 | function_version 이것은 실행되는 aws lambda 함수의 버전을 제공합니다. |
삼 | invoked_function_arn 그러면 ARN 세부 정보가 제공됩니다. |
4 | memory_limit_in_mb 이것은 람다 함수를 생성하는 동안 추가 된 메모리 제한을 보여줍니다. |
5 | aws_request_id 이것은 aws 요청 ID를 제공합니다. |
6 | og_group_name 이것은 cloudwatch 그룹 이름의 이름을 제공합니다 |
7 | log_stream_name 그러면 로그가 기록되는 Cloudwatch 로그 스트림 이름의 이름이 제공됩니다. |
8 | identity AWS Mobile SDK와 함께 사용할 때 Amazon cognito 자격 증명 공급자에 대한 세부 정보를 제공합니다. 주어진 세부 사항은 다음과 같습니다-
|
9 | client_context 이는 aws mobile sdk와 함께 사용할 때 클라이언트 애플리케이션에 대한 세부 정보입니다. 주어진 세부 사항은 다음과 같습니다-
|
컨텍스트 세부 사항을 출력하는 Python의 작동 예제를 살펴 보겠습니다. 아래 주어진 코드를 관찰하십시오-
def my_handler(event, context):
print("Log stream name:", context.log_stream_name)
print("Log group name:", context.log_group_name)
print("Request ID:",context.aws_request_id)
print("Mem. limits(MB):", context.memory_limit_in_mb)
print("Time remaining (MS):", context.get_remaining_time_in_millis())
return "aws lambda in python using zip file"
위에 표시된 코드의 해당 출력은 다음과 같습니다.
Python을 사용하여 로깅
Python을 사용하여 정보를 기록하려면 사용 가능한 인쇄 또는 로거 기능을 사용할 수 있습니다. 위의 컨텍스트 예제를 사용하고 CloudWatch에서 로그가 인쇄되는지 확인합니다. 다음 코드를 관찰하십시오-
def my_handler(event, context):
print("Log stream name:", context.log_stream_name)
print("Log group name:", context.log_group_name)
print("Request ID:",context.aws_request_id)
print("Mem. limits(MB):", context.memory_limit_in_mb)
print("Time remaining (MS):", context.get_remaining_time_in_millis())
return "aws lambda in python using zip file"
CloudWatch에서이 코드의 출력은 다음과 같습니다.
로거를 사용하여 CloudWatch에 로그를 인쇄하는 방법을 이해하려면 다음 예제를 참조하십시오.
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def my_handler(event, context):
logger.info('Using logger to print messages to cloudwatch logs')
return "aws lambda in python using zip file"
이에 대한 출력은 아래 스크린 샷과 같습니다.
Python for Lambda 함수의 오류 처리
이 섹션에서는 Python에서 오류를 처리하는 방법을 보여주는 작업 예제를 살펴 보겠습니다. 여기에 주어진 코드를 관찰하십시오-
def error_handler(event, context):
raise Exception('Error Occured!')
로그 표시는 여기 이미지와 같습니다.