

# Uso del objeto de contexto Lambda para recuperar la información de la función de Rust
<a name="rust-context"></a>

Cuando Lambda ejecuta su función, agrega un objeto de contexto al LambdaEvent que recibe el [controlador](rust-handler.md). Este objeto proporciona propiedades con información acerca de la invocación, la función y el entorno de ejecución.

**Propiedades de context**
+  `request_id`: el ID de solicitud de AWS generado por el servicio de Lambda. 
+  `deadline`: la fecha límite de ejecución de la invocación actual en milisegundos.
+  `invoked_function_arn`: el nombre de recurso de Amazon (ARN) de la función de Lambda que se invoca.
+  `xray_trace_id`: el ID de seguimiento AWS X-Ray de la invocación actual. 
+  `client_content`: el objeto de contexto del cliente enviado por el SDK de AWS móvil. Este campo está vacío a menos que la función se invoque mediante un SDK de AWS móvil. 
+  `identity`: la identidad de Amazon Cognito que invocó la función. Este campo está vacío a menos que la solicitud de invocación a las API de Lambda se haya realizado con credenciales de AWS emitidas por los grupos de identidades de Amazon Cognito.
+  `env_config`: la configuración de la función de Lambda de las variables de entorno local. Esta propiedad incluye información como el nombre de la función, la asignación de memoria, la versión y los flujos de registro.

## Acceso a la información del contexto de invocación
<a name="rust-context-invoke"></a>

Las funciones de Lambda tienen acceso a metadatos acerca de su entorno y la solicitud de invocación. El objeto `LambaEvent` que recibe el controlador de funciones incluye los metadatos `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
}
```