

# Lambda 컨텍스트 객체를 사용하여 Python 함수 정보 검색
<a name="python-context"></a>

Lambda는 함수를 실행할 때 컨텍스트 객체를 [핸들러](python-handler.md)에 전달합니다. 이 객체는 호출, 함수 및 실행 환경에 관한 정보를 제공하는 메서드 및 속성들을 제공합니다. 컨텍스트 객체가 함수 핸들러에 전달되는 방법에 대한 자세한 내용은 [Python에서 Lambda 함수 핸들러 정의](python-handler.md) 섹션을 참조하십시오.

**컨텍스트 메서드**
+ `get_remaining_time_in_millis` – 실행 시간이 초과되기까지 남은 시간(밀리초)을 반환합니다.

**컨텍스트 속성**
+ `function_name` – Lambda 함수의 이름입니다.
+ `function_version` – 함수의 [버전](configuration-versions.md)입니다.
+ `invoked_function_arn` – 함수를 호출할 때 사용하는 Amazon 리소스 이름(ARN)입니다. 호출자가 버전 번호 또는 별칭을 지정했는지 여부를 나타냅니다.
+ `memory_limit_in_mb` – 함수에 할당된 메모리의 양입니다.
+ `aws_request_id` – 호출 요청의 식별자입니다.
+ `log_group_name` – 함수에 대한 로그 그룹입니다.
+ `log_stream_name` – 함수 인스턴스에 대한 로그 스트림입니다.
+ `identity` – (모바일 앱) 요청을 승인한 Amazon Cognito 자격 증명에 대한 정보입니다.
  + `cognito_identity_id`— 인증된 Amazon Cognito ID입니다.
  + `cognito_identity_pool_id` – 호출에 대한 권한을 부여한 Amazon Cognito ID 풀입니다.
+ `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\$1context.py](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/typing/lambda_context.py)를 참조하세요.

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

**Example handler.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용 [AWS Lambda에서 Python 코드 계측](python-tracing.md) X-Ray SDK를 사용하면 중요한 코드 경로를 식별하고 그 성능을 추적하며 분석용 데이터를 수집할 수도 있습니다.