Creación de patrones de eventos en EventBridge - Amazon EventBridge

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Creación de patrones de eventos en EventBridge

Para crear un patrón de eventos, especifique los campos con los que desea que coincida el patrón del evento. Especifique únicamente los campos que utilice para la coincidencia.

Por ejemplo, el siguiente ejemplo de patrón de eventos solo proporciona valores para tres campos: los campos de nivel superior "source" y "detail-type", y el campo "state" dentro del campo de objeto "detail". EventBridge ignora todos los demás campos del evento al aplicar la regla.

{ "source": ["aws.ec2"], "detail-type": ["EC2 Instance State-change Notification"], "detail": { "state": ["terminated"] } }

Para que un patrón de eventos coincida con un evento, el evento debe contener todos los nombres de campos enumerados en el patrón. Los nombres de los campos también deben aparecer en el evento con la misma estructura de anidación.

Al escribir patrones de evento para buscar eventos, puede utilizar la API de TestEventPattern o el comando de la CLI test-event-pattern para probar si el patrón coincide con los eventos correctos. Para obtener más información, consulte TestEventPattern.

Coincidencias de valores de eventos

En un patrón de eventos, el valor que debe coincidir está en una matriz JSON, entre corchetes ("[", "]") para que pueda proporcionar varios valores. Por ejemplo, para hacer coincidir los eventos de Amazon EC2 o AWS Fargate, puede utilizar el siguiente patrón, que hace coincidir eventos en los que el valor del campo "source" es "aws.ec2" o "aws.fargate".

{ "source": ["aws.ec2", "aws.fargate"] }

Para obtener más información, consulte Hacer coincidir con varios valores de campo.

Uso de operadores de comparación de patrones de eventos de Amazon EventBridge

Amazon EventBridge admite el filtrado de contenido declarativo utilizando patrones de eventos. Mediante el filtrado de contenido, puede crear patrones de eventos complejos que solo coinciden con eventos bajo condiciones muy específicas. Por ejemplo, puede crear un patrón de eventos que coincida con un evento cuando:

  • Un campo del evento está dentro de un intervalo numérico específico.

  • El evento proviene de una dirección IP específica.

  • No existe un campo específico en el JSON del evento.

Para obtener más información, consulte Operadores de comparación.

Consideraciones sobre la creación de patrones de eventos

A continuación, se muestran algunos aspectos que debe considerar a la hora de crear sus patrones de eventos:

  • EventBridge ignora los campos del evento que no se incluyen en el patrón de eventos. El efecto es que hay un comodín "*": "*" para los campos que no aparecen en el patrón de eventos.

  • Los valores que coinciden con patrones de eventos siguen las reglas JSON. Puede incluir cadenas entre comillas (“), números y palabras clave true, false y null.

  • Para las cadenas, EventBridge usa coincidencia exacta carácter a carácter sin necesidad de cambio de mayúsculas y minúsculas ni cualquier otra normalización de cadenas.

  • Para los números, EventBridge también usa la representación de cadenas. Por ejemplo, 300, 300.0 y 3.0e2 no se consideran iguales.

  • Si se especifican varios patrones para el mismo campo JSON, EventBridge solo usa el último.

  • Tenga en cuenta que cuando EventBridge compila patrones de eventos para su uso, utiliza el punto (.) como carácter de unión.

    Esto significa que EventBridge tratará los siguientes patrones de eventos como idénticos:

    ## has no dots in keys { "detail" : { "state": { "status": [ "running" ] } } } ## has dots in keys { "detail" : { "state.status": [ "running" ] } }

    Y que ambos patrones de eventos coincidirán con los dos eventos siguientes:

    ## has no dots in keys { "detail" : { "state": { "status": "running" } } } ## has dots in keys { "detail" : { "state.status": "running" } }
    nota

    Así se describe el comportamiento actual de EventBridge y no se debe confiar en que no cambie.

  • Los patrones de eventos que contienen campos duplicados no son válidos. Si un patrón contiene campos duplicados, EventBridge solo tiene en cuenta el valor final del campo.

    Por ejemplo, los siguientes patrones de eventos coincidirán con el mismo evento:

    ## has duplicate keys { "source": ["aws.s3"], "source": ["aws.sns"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["s3.amazonaws.com"], "eventSource": ["sns.amazonaws.com"] } } ## has unique keys { "source": ["aws.sns"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["sns.amazonaws.com"] } }

    Y EventBridge trata los dos eventos siguientes como idénticos:

    ## has duplicate keys { "source": ["aws.s3"], "source": ["aws.sns"], "detail-type": ["AWS API Call via CloudTrail"], "detail": [ { "eventSource": ["s3.amazonaws.com"], "eventSource": ["sns.amazonaws.com"] } ] } ## has unique keys { "source": ["aws.sns"], "detail-type": ["AWS API Call via CloudTrail"], "detail": [ { "eventSource": ["sns.amazonaws.com"] } ] }
    nota

    Así se describe el comportamiento actual de EventBridge y no se debe confiar en que no cambie.