Lambda 컨텍스트 객체로 Python 함수 정보 검색

Lambda 컨텍스트 객체로 Python 함수 정보 검색

Lambda가 함수를 실행할 때 핸들러에 컨텍스트 객체를 전달합니다. 이 객체는 호출, 함수, 실행 환경에 대한 정보를 제공하는 메서드와 속성을 담고 있습니다. 컨텍스트 객체가 함수 핸들러에 어떻게 전달되는지에 대한 자세한 내용은 'Python에서 Lambda 함수 핸들러 정의' 문서를 참고하세요.

출처: AWS Lambda 개발자 안내서

본문

  • get_remaining_time_in_millis – 실행이 타임아웃되기까지 남은 밀리초 수를 반환합니다.
  • function_name – Lambda 함수의 이름입니다.
  • function_version – 함수의 버전입니다.
  • invoked_function_arn – 함수를 호출하는 데 사용된 Amazon Resource Name(ARN)입니다. 호출자가 버전 번호나 별칭을 지정했는지 여부를 나타냅니다.
  • memory_limit_in_mb – 함수에 할당된 메모리 양입니다.
  • aws_request_id – 호출 요청의 식별자입니다.
  • log_group_name – 함수의 로그 그룹입니다.
  • log_stream_name – 함수 인스턴스의 로그 스트림입니다.
  • identity – (모바일 앱) 요청을 승인한 Amazon Cognito 자격 증명에 대한 정보입니다.
  • cognito_identity_id – 인증된 Amazon Cognito 자격 증명입니다.
  • cognito_identity_pool_id – 호출을 승인한 Amazon Cognito 자격 증명 풀입니다.
  • client_context – (모바일 앱) 클라이언트 애플리케이션이 Lambda에 제공하는 클라이언트 컨텍스트입니다.
    • client.installation_id
    • client.app_title
    • client.app_version_name
    • client.app_version_code
    • client.app_package_name
    • custom – 모바일 클라이언트 애플리케이션이 설정한 사용자 지정 값의 dict입니다.
    • env – AWS SDK가 제공하는 환경 정보의 dict입니다.

Powertools for Lambda (Python)은 Lambda 컨텍스트 객체에 대한 인터페이스 정의를 제공합니다. 이 인터페이스 정의를 타입 힌트에 사용하거나 Lambda 컨텍스트 객체의 구조를 더 자세히 조사하는 데 사용할 수 있습니다. 인터페이스 정의는 GitHub의 powertools-lambda-python 저장소에 있는 lambda_context.py에서 확인하세요.

다음 예제는 컨텍스트 정보를 로그로 남기는 핸들러 함수를 보여줍니다.

import time

def lambda_handler(event, context):   
    print("Lambda function ARN:", context.invoked_function_arn)
    print("CloudWatch log stream name:", context.log_stream_name)
    print("CloudWatch log group name:",  context.log_group_name)
    print("Lambda Request ID:", context.aws_request_id)
    print("Lambda function memory limits in MB:", context.memory_limit_in_mb)
    # We have added a 1 second delay so you can see the time remaining in get_remaining_time_in_millis.
    time.sleep(1) 
    print("Lambda time remaining in MS:", context.get_remaining_time_in_millis())

위에 나열된 옵션 외에도, AWS Lambda에서 Python 코드를 계측하기 위해 AWS X-Ray SDK를 사용해 핵심 코드 경로를 식별하고, 성능을 추적하며, 분석용 데이터를 캡처할 수도 있습니다.

더 알아보기 (Learn more)