

# Configurar o tratamento de erros para invocação assíncrona do Lambda
<a name="invocation-async-configuring"></a>

Use as configurações a seguir para definir como o Lambda lida com erros e novas tentativas para invocações de funções assíncronas:
+ [MaximumEventAgeInSeconds](https://docs.aws.amazon.com/lambda/latest/api/API_PutFunctionEventInvokeConfig.html#lambda-PutFunctionEventInvokeConfig-request-MaximumEventAgeInSeconds): o tempo máximo usado pelo Lambda, em segundos, para que o Lambda mantenha um evento na fila de eventos assíncronos antes de descartá-lo.
+ [MaximumRetryAttempts](https://docs.aws.amazon.com/lambda/latest/api/API_PutFunctionEventInvokeConfig.html#lambda-PutFunctionEventInvokeConfig-request-MaximumRetryAttempts): o número máximo de vezes que o Lambda tenta novamente quando a função retorna um erro.

Use o console do Lambda ou a AWS CLI para definir as configurações de tratamento de erros em uma função, uma versão ou um alias.

------
#### [ Console ]

**Como configurar o tratamento de erros**

1. Abra a [página Funções](https://console.aws.amazon.com/lambda/home#/functions) do console do Lambda.

1. Escolha uma função.

1. Escolha **Configuration (Configuração)** e, em seguida, **Asynchronous invocation (Invocação assíncrona)**.

1. Em **Asynchronous invocation (Invocação assíncrona)**, escolha **Edit (Editar)**.

1. Configure as definições a seguir.
   + **Maximum age of event** (Idade máxima do evento): a quantidade máxima de tempo que o Lambda retém um evento na fila de eventos assíncronos, até 6 horas.
   + **Retry attempts** (Tentativas de repetição): o número de vezes que o Lambda tenta novamente quando a função retorna um erro, entre 0 e 2.

1. Escolha **Salvar**.

------
#### [ AWS CLI ]

[Para configurar a invocação assíncrona com o AWS CLI, use o comando put-function-event-invoke-config](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/put-function-event-invoke-config.html). O exemplo a seguir configura uma função com uma idade máxima de evento de 1 hora e nenhuma repetição.

```
aws lambda put-function-event-invoke-config \ 
  --function-name error \
  --maximum-event-age-in-seconds 3600 \
  --maximum-retry-attempts 0
```

O comando `put-function-event-invoke-config` substitui qualquer configuração existente na função, versão ou alias. Para configurar uma opção sem redefinir outras, use [update-function-event-invoke-config](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-event-invoke-config.html). O exemplo a seguir configura o Lambda para enviar um registro a uma fila padrão do SQS denominada `destination` quando um evento não puder ser processado.

```
aws lambda update-function-event-invoke-config \
  --function-name my-function \
  --destination-config '{"OnFailure":{"Destination": "arn:aws:sqs:us-east-1:123456789012:destination"}}'
```

------

A seguinte saída deverá ser mostrada:

```
{
    "LastModified": 1573686021.479,
    "FunctionArn": "arn:aws:lambda:us-east-1:123456789012:function:my-function:$LATEST",
    "MaximumRetryAttempts": 0,
    "MaximumEventAgeInSeconds": 3600,
    "DestinationConfig": {
        "OnSuccess": {},
        "OnFailure": {}
    }
}
```

Quando um evento de invocação exceder a idade máxima ou falhar em todas as tentativas de repetição, o Lambda o descartará. Para reter uma cópia de eventos descartados, configure um [destino](invocation-async-retain-records.md#invocation-async-destinations) de evento com falha.