

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Lambda 內容物件擷取 Rust 函數資訊
<a name="rust-context"></a>

當 Lambda 執行您的函數時，其會將內容物件新增至[處理常式](rust-handler.md)接收的 LambdaEvent。此物件提供的各項屬性包含了有關叫用、函式以及執行環境的資訊。

**內容屬性**
+  `request_id`：Lambda 服務產生的 AWS 請求 ID。
+  `deadline`：目前叫用的執行期限，以毫秒為單位。
+  `invoked_function_arn`：被叫用之 Lambda 函數的 Amazon Resource Name (ARN)。
+  `xray_trace_id`：目前調用的 AWS X-Ray 追蹤 ID。
+  `client_content`：由 AWS 行動 SDK 傳送的用戶端內容物件。除非使用 AWS 行動 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
}
```