

# Configuração de funções duráveis do Lambda
<a name="durable-configuration"></a>

Configurações de execução duráveis controlam por quanto tempo sua função do Lambda pode ser executada e por quanto tempo o serviço retém o histórico de execução. Defina essas configurações para permitir a execução durável de sua função.

## Habilitação da execução durável
<a name="durable-config-settings"></a>

Configure o objeto `DurableConfig` ao criar sua função para definir o tempo limite de execução e a retenção do histórico. Você só pode habilitar a execução durável ao criar uma função. Não é possível habilitá-la em funções existentes.

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

```
aws lambda create-function \
  --function-name my-durable-function \
  --runtime nodejs24.x \
  --role arn:aws:iam::123456789012:role/my-durable-role \
  --handler index.handler \
  --zip-file fileb://function.zip \
  --durable-config '{"ExecutionTimeout": 3600, "RetentionPeriodInDays": 30}'
```

------
#### [ CloudFormation ]

```
Resources:
  MyDurableFunction:
    Type: AWS::Lambda::Function
    Properties:
      FunctionName: my-durable-function
      Runtime: nodejs24.x
      Handler: index.handler
      Code:
        ZipFile: |
          // Your durable function code
      DurableConfig:
        ExecutionTimeout: 3600
        RetentionPeriodInDays: 30
```

------

**Parâmetros de configuração:**
+ `ExecutionTimeout` — O tempo máximo em segundos que uma execução durável pode ser executada antes que o Lambda interrompa a execução. Esse tempo limite se aplica a toda a execução durável, e não às invocações de funções individuais. Intervalo válido: de 1 a 31622400.
+ `RetentionPeriodInDays` — O número de dias para reter o histórico de execução após a conclusão de uma execução duradoura. Após esse período, o histórico de execução não estará mais disponível por meio da API `GetDurableExecutionHistory`. Intervalo válido: de 1 a 90.

Para ver a referência completa da API, veja[DurableConfig](https://docs.aws.amazon.com/lambda/latest/api/API_DurableConfig.html) na Referência da API Lambda.

## Práticas recomendadas para configuração
<a name="durable-config-best-practices"></a>

Siga estas práticas recomendadas ao configurar funções duráveis para uso em produção:
+ **Defina tempos limite de execução adequados**: configure `ExecutionTimeout` com base na duração máxima esperada do seu fluxo de trabalho. Não defina prazos desnecessariamente longos, pois eles afetam a alocação de custos e recursos.
+ **Equilibre a retenção com os custos de armazenamento**: defina `RetentionPeriodInDays` com base em seus requisitos de depuração e auditoria. Períodos de retenção mais longos aumentam os custos de armazenamento.
+ **Monitore o tamanho do estado**: objetos de estado grandes aumentam os custos de armazenamento e podem afetar a performance. Mantenha o estado mínimo e use armazenamento externo para grandes volumes de dados.
+ **Configure o registro em log apropriado**: habilite o registro em log detalhado para solucionar problemas de fluxos de trabalho de longa duração, mas considere o impacto no volume de registros e nos custos.

**Exemplo de configuração de produção:**

```
{
  "ExecutionTimeout": 86400,
  "RetentionPeriodInDays": 7
}
```

Este exemplo define um tempo limite de execução de 24 horas (86.400 segundos) com um período de retenção de sete dias, o que equilibra a visibilidade da depuração com os custos de armazenamento para a maioria das cargas de trabalho de produção.