

# Usar o objeto de contexto do Lambda para recuperar informações das funções em Rust
<a name="rust-context"></a>

Quando o Lambda executa sua função, ele adiciona um objeto de contexto ao LambdaEvent que o [manipulador](rust-handler.md) recebe. Esse objeto fornece propriedades com informações sobre a invocação, a função e o ambiente de execução.

**Propriedades de contexto**
+  `request_id`: o ID da solicitação AWS gerado pelo serviço Lambda. 
+  `deadline`: o prazo de execução da invocação atual, em milissegundos.
+  `invoked_function_arn`: o nome do recurso da Amazon (ARN) da função do Lambda sendo invocada.
+  `xray_trace_id`: o ID de rastreamento do AWS X-Ray da invocação atual. 
+  `client_content`: o objeto de contexto do cliente enviado pelo SDK móvel da AWS. Este campo está vazio, a menos que a função seja invocada usando um SDK móvel da AWS. 
+  `identity`: a identidade do Amazon Cognito que invocou a função. Este campo está vazio, a menos que a solicitação de invocação às APIs do Lambda tenha sido feita usando credenciais da AWS emitidas pelos grupos de identidade do Amazon Cognito.
+  `env_config`: a configuração da função do Lambda a partir das variáveis de ambiente locais. Essa propriedade inclui informações como nome da função, alocação de memória, versão e fluxos de log.

## Acessar informações do contexto de invocação
<a name="rust-context-invoke"></a>

As funções do Lambda têm acesso aos metadados sobre seu ambiente e a solicitação da invocação. O objeto `LambaEvent` que seu manipulador de funções recebe inclui os metadados `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
}
```