

# 使用 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 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开发工具包提供的环境信息的 `dict`。

适用于 Lambda 的 Powertools（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 开发工具包来识别关键代码路径、跟踪其性能并收集数据以用于分析。