

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

Quando o Lambda executa a função, ele transmite um objeto de contexto para o [handler](python-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 obter mais informações sobre como o objeto de contexto é passado para o manipulador de funções, consulte [Definir o manipulador de função do Lambda em Python](python-handler.md).

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

**Propriedades de contexto**
+ `function_name`: o nome da função do Lambda.
+ `function_version`: a [versão](configuration-versions.md) da função.
+ `invoked_function_arn`: 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.
+ `memory_limit_in_mb`: a quantidade de memória alocada para a função.
+ `aws_request_id`: o identificador da solicitação de invocação.
+ `log_group_name`: o grupo de logs da função.
+ `log_stream_name`: 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.
  + `cognito_identity_id`: a identidade autenticada do Amazon Cognito.
  + `cognito_identity_pool_id`: o grupo de identidades do Amazon Cognito que autorizou a invocação.
+ `client_context`: (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`
  + `custom`: um `dict` de valores personalizados definidos pela aplicação cliente para dispositivos móveis.
  + `env`: um `dict` de informações do ambiente fornecidas pelo AWS SDK.

O Powertools para Lambda (Python) fornece uma definição de interface para o objeto de contexto do Lambda. Você pode usar a definição da interface para dicas de tipo ou para inspecionar ainda mais a estrutura do objeto de contexto do Lambda. Para a definição da interface, consulte [lambda\$1context.py](https://github.com/aws-powertools/powertools-lambda-python/blob/develop/aws_lambda_powertools/utilities/typing/lambda_context.py) no repositório *powertools-lambda-python* no GitHub.

O exemplo a seguir mostra uma função do handler que registra informações de contexto.

**Example handler.py**  

```
import time

def lambda_handler(event, context):   
    print("Lambda function ARN:", context.invoked_function_arn)
    print("CloudWatch log stream name:", context.log_stream_name)
    print("CloudWatch log group name:",  context.log_group_name)
    print("Lambda Request ID:", context.aws_request_id)
    print("Lambda function memory limits in MB:", context.memory_limit_in_mb)
    # We have added a 1 second delay so you can see the time remaining in get_remaining_time_in_millis.
    time.sleep(1) 
    print("Lambda time remaining in MS:", context.get_remaining_time_in_millis())
```

Além das opções listadas acima, você também pode usar o AWS X-Ray SDK para [Instrumentação do código Python no AWS Lambda](python-tracing.md) para identificar caminhos de código críticos, rastrear a performance e capturar os dados para análise. 