

# 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 모바일 SDK에서 전송한 클라이언트 컨텍스트 객체입니다. AWS 모바일 SDK를 사용하여 함수를 간접 호출하지 않는 한 이 필드는 비어 있습니다.
+  `identity`: 함수를 간접 호출한 Amazon Cognito ID입니다. Lambda API에 대한 호출 요청이 Amazon Cognito 자격 증명 풀에서 발급한 AWS 자격 증명을 사용하여 이루어지지 않은 경우 이 필드는 비어 있습니다.
+  `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
}
```