# LAMBDA: Lambda com alta taxa de erro

> Esta regra identifica funções AWS Lambda que apresentam taxa de erro superior a 50% no período configurado.
>
> O objetivo é detectar funções com falhas recorrentes que podem impactar confiabilidade, experiência do usuário e gerar custo desnecessário por execuções malsucedidas.

***

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

O AWS Lambda é amplamente utilizado para:

* APIs serverless
* Processamento de eventos
* Integrações assíncronas
* Orquestração de workflows

Quando uma função apresenta alta taxa de erro:

* Pode indicar falhas de código
* Pode haver dependências indisponíveis
* Pode ocorrer timeout recorrente
* Retries automáticos podem amplificar o problema
* O custo por invocação continua sendo cobrado, mesmo em caso de erro

Impactos diretos:

* Instabilidade de sistemas críticos
* Aumento de custo operacional
* Crescimento de logs no CloudWatch
* Risco de incidentes

Essa regra atua como mecanismo de governança operacional e confiabilidade.

***

**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:
   * Consulta métricas no CloudWatch:
     * `Invocations`
     * `Errors`
   * Período analisado: definido por `self.checker.period.days`
   * Agregação diária (`Period = 86400`)
   * Estatística utilizada: `Sum`
5. Calcula:

```
Error Rate (%) = (Total Errors / Total Invocations) × 100
```

6. Se a taxa de erro for superior a 50%, a função é sinalizada.

***

**Lógica aplicada**

A função será considerada não aderente quando:

```
Total Invocations > 0
E
Error Rate > 50%
```

Se não houver invocações no período, a função não é analisada.

***

**Campos analisados**

Lambda:

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

CloudWatch (Namespace `AWS/Lambda`):

* `Invocations`
* `Errors`

Dimensão:

* `FunctionName`

***

**Parâmetros considerados na busca**

APIs utilizadas:

* `lambda:ListFunctions`
* `cloudwatch:GetMetricStatistics`

Condições técnicas:

* Período configurável via `self.checker.period.days`
* Threshold fixo de 50%

***

**Período Avaliado (Filtro Temporal)**

Período Avaliado (Filtro Temporal): A regra avalia as métricas `Invocations` e `Errors` no intervalo correspondente aos dias definidos na configuração da regra.

Exemplo: Se configurado para 15 dias, serão analisadas todas as invocações e erros acumulados nos últimos 15 dias.

> Esse parâmetro de avaliação pode ser ajustado nas configurações das regras.

***

**Intervalo de Análise**

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

***

**Aderência às melhores práticas**

Não possui cálculo direto de savings, mas contribui para:

* Redução de desperdício por execuções com falha
* Aumento de confiabilidade
* Melhoria de observabilidade
* Aderência ao pilar de Confiabilidade do AWS Well-Architected Framework

***

**Impacto financeiro indireto**

Exemplo:

* 100.000 invocações/mês
* 60% de erro

Resultado:

```
60.000 execuções com falha continuam sendo cobradas
```

Além disso, pode haver:

* Retries automáticos
* Execuções duplicadas
* Maior volume de logs

***

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

* Revisar logs no CloudWatch Logs.
* Validar dependências externas (RDS, APIs, Secrets).
* Ajustar timeout e memória.
* Implementar alarmes de erro no CloudWatch.
* Utilizar DLQ (Dead Letter Queue).
* Revisar políticas de retry.

Possíveis exceções:

* Funções em ambiente de teste.
* Funções com erro esperado como parte do fluxo.
* Cargas experimentais.

Recomenda-se validar o contexto antes de qualquer ação corretiva.

***
