Tengo un problema para activar la regla de Cloudwatch en el cambio de estado de alarma de CloudWatch. Este es un patrón de evento para una regla. No envía un mensaje a SNS de cambio de estado.
{ "detail-type": [ "CloudWatch Alarm State Change" ], "resources": [ !Sub "arn:aws:cloudwatch:${AWS:Region}:${AWS:AccountId}:alarm:Admin dead" ], "source": [ "aws.cloudwatch" ], "detail": { "state": [ "ALARM" ] } }La alarma en sí funciona correctamente y envía un mensaje a SNS en paralelo. Además, si eliminaré esta parte:
"detail": { "state": [ "ALARM" ] }entonces la regla funciona correctamente para cada cambio de estado. Pero solo necesito que se cambie a "En alarma" (como se muestra en la interfaz de usuario).
gracias por cualquier consejo
Una buena manera de depurar esto sería eliminar la parte de "detalle" y suscribirse al tema SNS con correo electrónico o una función lambda o similar para ver el contenido real del evento de alarma.
Parece que a su regla para "detalle" le falta el parámetro "valor", la siguiente regla funciona:
{ "source": [ "aws.cloudwatch" ], "detail-type": [ "CloudWatch Alarm State Change" ], "detail": { "state": { "value": [ "ALARM" ] } } }De acuerdo con this , un evento de ejemplo se ve así:
{ "version": "0", "id": "2dde0eb1-528b-d2d5-9ca6-6d590caf2329", "detail-type": "CloudWatch Alarm State Change", "source": "aws.cloudwatch", "account": "123456789012", "time": "2019-10-02T17:20:48Z", "region": "us-east-1", "resources": [ "arn:aws:cloudwatch:us-east-1:123456789012:alarm:TotalNetworkTrafficTooHigh" ], "detail": { "alarmName": "TotalNetworkTrafficTooHigh", "configuration": { "description": "Goes into alarm if total network traffic exceeds 10Kb", "metrics": [...] }, "previousState": { "reason": "Unchecked: Initial alarm creation", "timestamp": "2019-10-02T17:20:03.642+0000", "value": "INSUFFICIENT_DATA" }, "state": { "reason": "Threshold Crossed: 1 out of the last 1 datapoints [45628.0 (02/10/19 17:10:00)] was greater than the threshold (10000.0) (minimum 1 datapoint for OK -> ALARM transition).", "reasonData": "{\"version\":\"1.0\",\"queryDate\":\"2019-10-02T17:20:48.551+0000\",\"startDate\":\"2019-10-02T17:10:00.000+0000\",\"period\":300,\"recentDatapoints\":[45628.0],\"threshold\":10000.0}", "timestamp": "2019-10-02T17:20:48.554+0000", "value": "ALARM" } } }El siguiente truco funcionó para mí. Quería obtener todas las alertas que están en estado de alarma por la regla de vigilancia en la nube.
{ "source": [ "aws.cloudwatch" ], "detail-type": [ "CloudWatch Alarm State Change" ], "detail": { "state": { "value": [ "ALARM" ] } } }