

# 使用 Lambda 上下文对象检索 Rust 函数信息
<a name="rust-context"></a>

当 Lambda 运行函数时，会将上下文对象添加到[处理程序](rust-handler.md)接收的 LambdaEvent 中。此对象提供的属性包含有关调用、函数和执行环境的信息。

**上下文属性**
+  `request_id`：由 Lambda 服务生成的 AWS 请求 ID。
+  `deadline`：当前调用的执行截止时间（以毫秒为单位）。
+  `invoked_function_arn`：正在调用的 Lambda 函数的 Amazon 资源名称（ARN）。
+  `xray_trace_id`：当前调用的 AWS X-Ray 跟踪 ID。
+  `client_content`：AWS Mobile SDK 发送的客户端上下文对象。除非使用 AWS Mobile SDK 调用函数，否则此字段为空。
+  `identity`：已调用函数的 Amazon Cognito 身份。除非使用由 Amazon Cognito 身份池颁发的 AWS 凭证向 Lambda API 发出调用请求，否则此字段为空。
+  `env_config`：来自本地环境变量的 Lambda 函数配置。此属性包括函数名称、内存分配、版本和日志流等信息。

## 访问调用上下文信息
<a name="rust-context-invoke"></a>

Lambda 函数可以访问有关其环境和调用请求的元数据。函数处理程序接收的 `LambaEvent` 对象包含 `context` 元数据：

```
use lambda_runtime::{service_fn, LambdaEvent, Error};
use serde_json::{json, Value};

async fn handler(event: LambdaEvent<Value>) -> Result<Value, Error> {
    let invoked_function_arn = event.context.invoked_function_arn;
    Ok(json!({ "message": format!("Hello, this is function {invoked_function_arn}!") }))
}

#[tokio::main]
async fn main() -> Result<(), Error> {
    lambda_runtime::run(service_fn(handler)).await
}
```