Usar o objeto de contexto do Lambda para recuperar informações das funções em Rust - AWS Lambda

Usar o objeto de contexto do Lambda para recuperar informações das funções em Rust

nota

O cliente runtime do Rust é um pacote experimental. Ele está sujeito a alterações, e é destinado apenas a fins de avaliação.

Quando o Lambda executa sua função, ele adiciona um objeto de contexto ao LambdaEvent que o manipulador 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

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 }