Crear 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.

Crear 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 "state" campo dentro del campo de "detail" objeto. EventBridgeomite 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 eventos para que coincidan con los eventos, puede usar el test-event-pattern CLI comando TestEventPattern API o para comprobar que 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 JSON matriz, entre corchetes («[», «]») para que pueda proporcionar varios valores. Por ejemplo, para hacer coincidir los eventos de Amazon EC2 o AWS Fargate, puedes usar el siguiente patrón, que coincide con los eventos en los que el valor del "source" campo es "aws.ec2" o"aws.fargate".

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

Para obtener más información, consulte Coincidencia en varios valores de campo.

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

Amazon EventBridge admite el filtrado declarativo de contenido mediante 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 eventoJSON.

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 omite los campos del evento que no están incluidos en el patrón del evento. El efecto es que hay un comodín "*": "*" para los campos que no aparecen en el patrón de eventos.

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

  • En el caso de las cadenas, EventBridge utiliza la character-by-character coincidencia exacta sin doblar mayúsculas y minúsculas ni normalizar ninguna otra cadena.

  • En el caso de los números, EventBridge utiliza 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 JSON campo, EventBridge solo usa el último.

  • Tenga en cuenta que cuando EventBridge compila patrones de eventos para su uso, utiliza un 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

    Esto describe EventBridge el comportamiento actual y no se debe confiar en él para 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

    Esto describe EventBridge el comportamiento actual y no se debe confiar en él para que no cambie.