

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

Quando o Lambda executa a função, ele transmite um objeto de contexto para o [handler](nodejs-handler.md). Esse objeto fornece métodos e propriedades que fornecem informações sobre a invocação, a função e o ambiente de execução.

**Métodos de contexto**
+ `getRemainingTimeInMillis()`: retorna o número de milissegundos restantes antes do tempo limite da execução.

**Propriedades de contexto**
+ `functionName`: o nome da função do Lambda.
+ `functionVersion`: a [versão](configuration-versions.md) da função.
+ `invokedFunctionArn`: o nome do recurso da Amazon (ARN) usado para invocar a função. Indica se o invocador especificou um alias ou número de versão.
+ `memoryLimitInMB`: a quantidade de memória alocada para a função.
+ `awsRequestId`: o identificador da solicitação de invocação.
+ `logGroupName`: o grupo de logs da função.
+ `logStreamName`: a transmissão de log para a instância da função.
+ `identity`: (aplicativos móveis) informações sobre a identidade do Amazon Cognito que autorizou a solicitação.
  + `cognitoIdentityId`: a identidade autenticada do Amazon Cognito.
  + `cognitoIdentityPoolId`: o grupo de identidades do Amazon Cognito que autorizou a invocação.
+ `clientContext`: (aplicativos móveis) contexto do cliente fornecido ao Lambda pela aplicação cliente.
  + `client.installation_id`
  + `client.app_title`
  + `client.app_version_name`
  + `client.app_version_code`
  + `client.app_package_name`
  + `env.platform_version`
  + `env.platform`
  + `env.make`
  + `env.model`
  + `env.locale`
  + `custom`: os valores personalizados que são definidos pela aplicação cliente. 
+ `callbackWaitsForEmptyEventLoop`: por padrão (`true`), ao usar um manipulador de função baseado em retorno de chamada, o Lambda espera que o loop de eventos fique vazio após a execução do retorno de chamada antes de encerrar a invocação da função. Definido como `false` para enviar a resposta e encerrar a chamada imediatamente após a execução do retorno de chamada, em vez de aguardar até que o loop de eventos esteja vazio. Os eventos pendentes continuarão a ser executados durante a próxima invocação. Observe que o Lambda oferece suporte a manipuladores de funções baseados em retorno de chamada somente para runtimes do Node.js 22 e anteriores.

O exemplo a seguir registra informações de contexto da função e retorna a localização dos logs.

**Example Arquivo index.js**  

```
exports.handler = async function(event, context) {
  console.log('Remaining time: ', context.getRemainingTimeInMillis())
  console.log('Function name: ', context.functionName)
  return context.logStreamName
}
```