

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

Quando o Lambda executa a função, ele transmite um objeto de contexto para o [handler](typescript-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.

Para habilitar a verificação de tipo para o objeto de contexto, é necessário adicionar o pacote [@types/aws-lambda](https://www.npmjs.com/package/@types/aws-lambda) como uma dependência de desenvolvimento e importar o tipo `Context`. Para obter mais informações, consulte [Definições de tipo para o Lambda](lambda-typescript.md#typescript-type-definitions).

**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.

**Example arquivo index.ts**  
O exemplo a seguir registra informações de contexto da função e retorna a localização dos logs.  
Antes de usar esse código em uma função do Lambda, você deve adicionar o pacote [@types/aws-lambda](https://www.npmjs.com/package/@types/aws-lambda) como uma dependência de desenvolvimento. Esse pacote contém as definições de tipo para o Lambda. Para obter mais informações, consulte [Definições de tipo para o Lambda](lambda-typescript.md#typescript-type-definitions).

```
import { Context } from 'aws-lambda';
export const lambdaHandler = async (event: string, context: Context): Promise<string> => {
  console.log('Remaining time: ', context.getRemainingTimeInMillis());
  console.log('Function name: ', context.functionName);
  return context.logStreamName;
};
```