Supervisión de eventos del valor controlado con Amazon EventBridge
Las reglas de eventos de Amazon EventBridge pueden notificarle cuando los canaries cambian de estado o completan las ejecuciones. EventBridge proporciona un flujo casi en tiempo real de los eventos del sistema que describen cambios en los recursos de AWS. CloudWatch Synthetics envía estos eventos a EventBridge en una base el mejor esfuerzo. La entrega del mejor esfuerzo significa que CloudWatch Synthetics intenta enviar todos los eventos a EventBridge, pero en algunos casos raros es posible que no se entregue un evento. EventBridge procesa todos los eventos que se han recibido al menos una vez. Además, los agentes de escucha de eventos podrían no recibir los eventos en el orden en el que los eventos han ocurrido.
nota
Amazon EventBridge: es un servicio conductor de eventos que se puede utilizar para conectar las aplicaciones con datos de varias fuentes. Para obtener más información, consulte What is Amazon EventBridge? (¿Qué es Amazon EventBridge?) en la Guía del usuario de Amazon EventBridge.
CloudWatch Synthetics emite un evento cuando un valor controlado cambia de estado o completa una ejecución. Se puede crear una regla de EventBridge que incluya un patrón de eventos para que coincida con todos los tipos de eventos que se han enviado desde CloudWatch Synthetics o que coincida únicamente con tipos de eventos específicos. Cuando un valor controlado desencadena una regla, EventBridge invoca las acciones de destino definidas en la regla. Esto le permite enviar notificaciones, capturar información sobre el evento y tomar medidas correctivas en respuesta a un cambio de estado del valor controlado o a la terminación de la ejecución del valor controlado. Por ejemplo, puede crear reglas para los siguientes casos de uso:
-
Investigación sobre el fallo de una ejecución de un valor controlado
-
Investigación sobre un valor controlado que ha entrado en estado de
ERROR
-
Seguimiento del ciclo de vida de un valor controlado
-
Supervisión del éxito o error de ejecución de un canario como parte de un flujo de trabajo
Eventos de muestra de CloudWatch Synthetics
En esta sección se enumeran los eventos de muestra de CloudWatch Synthetics. Para obtener más información sobre el formato del evento, consulte Events and Event Patterns in EventBridge (Eventos y patrones de eventos en EventBridge).
Cambio del estado del valor controlado
En este tipo de evento, los valores de current-state
y previous-state
pueden ser los siguientes:
CREATING
| READY
| STARTING
| RUNNING
| UPDATING
| STOPPING
| STOPPED
| ERROR
{ "version": "0", "id": "8a99ca10-1e97-2302-2d64-316c5dedfd61", "detail-type": "Synthetics Canary Status Change", "source": "aws.synthetics", "account": "123456789012", "time": "2021-02-09T22:19:43Z", "region": "us-east-1", "resources": [], "detail": { "account-id": "123456789012", "canary-id": "EXAMPLE-dc5a-4f5f-96d1-989b75a94226", "canary-name": "events-bb-1", "current-state": "STOPPED", "previous-state": "UPDATING", "source-location": "NULL", "updated-on": 1612909161.767, "changed-config": { "executionArn": { "previous-value": "arn:aws:lambda:us-east-1:123456789012:function:cwsyn-events-bb-1-af3e3a05-dc5a-4f5f-96d1-989EXAMPLE:1", "current-value": "arn:aws:lambda:us-east-1:123456789012:function:cwsyn-events-bb-1-af3e3a05-dc5a-4f5f-96d1-989EXAMPLE:2" }, "vpcId": { "current-value": "NULL" }, "testCodeLayerVersionArn": { "previous-value": "arn:aws:lambda:us-east-1:123456789012:layer:cwsyn-events-bb-1-af3e3a05-dc5a-4f5f-96d1-989EXAMPLE:1", "current-value": "arn:aws:lambda:us-east-1:123456789012:layer:cwsyn-events-bb-1-af3e3a05-dc5a-4f5f-96d1-989EXAMPLE:2" } }, "message": "Canary status has changed" } }
Se ha completado con éxito la ejecución del valor controlado
{ "version": "0", "id": "989EXAMPLE-f4a5-57a7-1a8f-d9cc768a1375", "detail-type": "Synthetics Canary TestRun Successful", "source": "aws.synthetics", "account": "123456789012", "time": "2021-02-09T22:24:01Z", "region": "us-east-1", "resources": [], "detail": { "account-id": "123456789012", "canary-id": "989EXAMPLE-dc5a-4f5f-96d1-989b75a94226", "canary-name": "events-bb-1", "canary-run-id": "c6c39152-8f4a-471c-9810-989EXAMPLE", "artifact-location": "cw-syn-results-123456789012-us-east-1/canary/us-east-1/events-bb-1-ec3-28ddbe266797/2021/02/09/22/23-41-200", "test-run-status": "PASSED", "state-reason": "null", "canary-run-timeline": { "started": 1612909421, "completed": 1612909441 }, "message": "Test run result is generated successfully" } }
Error en la ejecución del valor controlado
{ "version": "0", "id": "2644b18f-3e67-5ebf-cdfd-bf9f91392f41", "detail-type": "Synthetics Canary TestRun Failure", "source": "aws.synthetics", "account": "123456789012", "time": "2021-02-09T22:24:27Z", "region": "us-east-1", "resources": [], "detail": { "account-id": "123456789012", "canary-id": "af3e3a05-dc5a-4f5f-96d1-9989EXAMPLE", "canary-name": "events-bb-1", "canary-run-id": "0df3823e-7e33-4da1-8194-b04e4d4a2bf6", "artifact-location": "cw-syn-results-123456789012-us-east-1/canary/us-east-1/events-bb-1-ec3-989EXAMPLE/2021/02/09/22/24-21-275", "test-run-status": "FAILED", "state-reason": "\"Error: net::ERR_NAME_NOT_RESOLVED \"" "canary-run-timeline": { "started": 1612909461, "completed": 1612909467 }, "message": "Test run result is generated successfully" } }
Es posible que los eventos se dupliquen o estén desordenados. Para determinar el orden de los eventos, utilice la propiedad time
.
Prerrequisitos para crear las reglas de EventBridge
Antes de crear una regla de EventBridge para CloudWatch Synthetics, debe hacer lo siguiente:
-
Familiarícese con los eventos, las reglas y los destinos de EventBridge.
-
Cree y configure los destinos que las reglas de EventBridge han invocado. Las reglas pueden invocar muchos tipos de destinos, entre los que se incluyen:
Temas de Amazon SNS
Funciones de AWS Lambda
Flujos de Kinesis
Colas de Amazon SQS
Para obtener más información, consulte What is Amazon EventBridge? (¿Qué es Amazon EventBridge?) y Getting started with Amazon EventBridge (Introducción a Amazon EventBridge) en la Guía del usuario de Amazon EventBridge.
Cree una regla de EventBridge (CLI)
Los pasos del ejemplo siguiente crean una regla de EventBridge que publica un tema de Amazon SNS cuando el valor controlado que se denomina my-canary-name
en us-east-1
completa una ejecución o cambia de estado.
-
Crear la regla.
aws events put-rule \ --name TestRule \ --region us-east-1 \ --event-pattern "{\"source\": [\"aws.synthetics\"], \"detail\": {\"canary-name\": [\"my-canary-name\"]}}"
Las propiedades que se omiten en el patrón no se tienen en cuenta.
-
Añada el tema como destino de la regla.
Reemplace
tema-arn
por el nombre de recurso de Amazon (ARN) del tema de Amazon SNS.
aws events put-targets \ --rule TestRule \ --targets "Id"="1","Arn"="
topic-arn
"nota
Para permitir que Amazon EventBridge llame al tema de destino, debe agregar en el tema una política basada en recursos. Para obtener más información, consulte Amazon SNS permissions (Permisos de Amazon SNS) en la Guía del usuario de Amazon EventBridge.
Para obtener más información, consulte Events and event patterns in EventBridge (Eventos y patrones de eventos en EventBridge) en la Guía del usuario de Amazon EventBridge.