Visão geral
O CloudWatch publica as transições de alarm em um topic SNS. Uma Lambda assinada nesse topic converte a notificação para o formato canônico do aciona.me e faz o POST na fonte de alerta.Pré-requisitos
- Permissão na AWS para criar topics SNS, funções Lambda e alterar alarms.
- Um serviço criado no aciona.me e vinculado a um time com escala ativa.
1. Crie a fonte de alerta no aciona.me
Em Fontes de alerta, crie uma fonte do tipo CloudWatch. Copie a URL e o token.2. Crie o topic SNS
3. Implante a Lambda de transformação
Runtime Node.js 20+, handlerindex.handler, sem dependências externas.
Variáveis de ambiente:
IAM role:
AWSLambdaBasicExecutionRole.
Código da Lambda
Código da Lambda
index.mjs
4. Assine a Lambda no topic
aws:SourceAccount e, se possível, aws:SourceArn, para que apenas o CloudWatch da sua conta possa publicar.
5. Configure o alarm com AlarmActions e OKActions
6. Teste
Como os campos são traduzidos
O CloudWatch não tem severidade nativa. A Lambda resolve o alias em camadas:
- Marcador no
AlarmDescription:[severity:critical] - Convenção no nome do alarm (contém
critical,high,warningouinfo) - Padrão:
warning
Solução de problemas
O acionamento abre, mas nunca fecha sozinho
O acionamento abre, mas nunca fecha sozinho
O alarm não tem
OKActions apontando para o topic SNS. Adicione com put-metric-alarm --ok-actions.Nada chega no aciona.me
Nada chega no aciona.me
Verifique, nesta ordem: a subscription da Lambda no topic está confirmada; os logs da Lambda no CloudWatch Logs;
ACIONA_INGRESS_URL e ACIONA_TOKEN corretos; a Lambda tem saída para a internet (se estiver em VPC, precisa de NAT).Serviço errado no acionamento
Serviço errado no acionamento
Ajuste as dimensões do alarm ou crie no aciona.me um serviço com o nome que a Lambda deriva. Veja a função
extractServiceHint no código.Severidade sempre warning
Severidade sempre warning
Adicione
[severity:critical] ao AlarmDescription ou inclua a palavra no nome do alarm.