# LAMBDA: Lambda com o tempo de timeout excessivo

> Esta regra identifica funções AWS Lambda configuradas com tempo de timeout superior a 300 segundos (5 minutos).
>
> O objetivo é detectar funções com configuração potencialmente superdimensionada, que podem gerar desperdício financeiro por manter execuções ativas por tempo excessivo em caso de erro, travamento ou dependência externa lenta.

***

### Contexto da regra e impacto no negócio

O AWS Lambda cobra por:

* Número de invocações
* Duração da execução
* Memória configurada

Quando o timeout é configurado acima do necessário:

* Funções com falha podem permanecer executando até atingir o limite máximo
* Retries automáticos ampliam o consumo
* Processos travados consomem tempo desnecessário
* Pode haver aumento indireto no custo mensal

Timeout excessivo não significa necessariamente erro, mas indica oportunidade de otimização técnica e financeira.

***

### Detalhamento técnico da regra

A regra executa análise regional das funções Lambda.

***

### Como a regra é executada

1. Autentica na conta AWS por região.
2. Lista todas as funções via `list_functions`.
3. Aplica filtros de tag (inclusão/exclusão).
4. Para cada função:
   * Avalia o campo:

     ```
     Timeout
     ```
   * Se `Timeout > 300 segundos`, a função é sinalizada.

***

### Lógica aplicada

A função será considerada elegível quando:

```
Timeout > 300 segundos
```

O limite de 300 segundos (5 minutos) é o threshold definido na implementação atual.

***

### Campos analisados

Lambda:

* `FunctionName`
* `FunctionArn`
* `Timeout`
* `Runtime`
* `Handler`
* `Tags`

***

### Parâmetros considerados na busca

APIs utilizadas:

* `lambda:ListFunctions`

Condição técnica:

* Comparação direta:

  ```
  Timeout > 300
  ```

***

### Período Avaliado (Filtro Temporal)

Período Avaliado (Filtro Temporal): Não se aplica filtro temporal nesta regra.

A avaliação é baseada exclusivamente na configuração atual do timeout da função no momento da execução.

***

### Intervalo de Análise

Execução padrão: a cada 24 horas.

***

### Cálculo de Savings

O savings é estimado aplicando 3% sobre o custo total das funções Lambda identificadas.

***

### Fórmula utilizada

```
Savings = sum("lineitem/unblendedcost") * 0.03
```

***

### Campo de custo utilizado

No Billing AWS:

* Service: AWSLambda
* Line Item Type: Usage
* Campo financeiro considerado:
  * `lineitem/unblendedcost`

***

### Racional financeiro

A estimativa de 3% considera:

* Redução potencial da duração média real
* Ajuste adequado de timeout baseado em execução real
* Diminuição de tempo ocioso até atingir limite máximo
* Redução de custo indireto por retries prolongados

O percentual representa uma estimativa conservadora e padronizada.

***

### Exemplo aplicado ao Billing

Cenário:

Custo mensal total das Lambdas identificadas:

```
$50.000
```

Cálculo:

```
Savings = 50.000 × 0.03
Savings = $1.500/mês
```

Savings anual estimado:

```
1.500 × 12 = $18.000
```

***

### Dicas de uso e boas práticas para o usuário

* Avaliar o tempo médio real de execução (p95).
* Ajustar timeout próximo ao comportamento real da aplicação.
* Monitorar métricas de Duration no CloudWatch.
* Revisar políticas de retry.
* Implementar observabilidade adequada.
* Testar alterações em ambiente de homologação antes de produção.

Possíveis exceções:

* Processamentos batch longos por design.
* Integrações externas imprevisíveis.
* Workflows assíncronos complexos.

Recomenda-se análise técnica antes da alteração definitiva.

***
