Amazon EventBridge Rule
Published: 2023-10-27 15:51:04

### Amazon EventBridge Rule
#### Como funciona las RULES
- la **regla enruta los eventos a los targets** para ser procesados
- una regla puede enviar un evento a **multiples targets**
- un evento puede coincidir con **mulptiples reglas**
- los **eventos se envian al target** para el procesamiento paralelo
- las **reglas pueden personalizar los eventos para que tengan un formato**especifico que el target pueda usar, para ser mas eficientes

#### Formato de un evento
- Es un Objeto Json y sus fields son:
    1. id
    2. version
    3. source
    4. detail-type
    5. account
    6. time
    7. region
    8. resources
    9. detail

#### Ejemplo del formato de un evento
![alt](https://explore.skillbuilder.aws/files/a/w/aws_prod1_docebosaas_com/1685595600/0r_cJYQ_Uq8eBA0zmfQHnw/tincan/1795780_1674587580_p1gniiv0qs1i2n1qh8obkmgisv4_zip/assets/63ACqAr505TGjPKQ_d5nzsh59-FZueC4H-ExampleEvent_NOPROCESS_.png)

#### Event patterns (patrones de evento)
- es un **objeto Json y tiene la misma estructura del evento** que va a matchear
- ejemplo de un patron de evento con el formato del evento de la imagen anterior:
![alt](    https://explore.skillbuilder.aws/files/a/w/aws_prod1_docebosaas_com/1685595600/0r_cJYQ_Uq8eBA0zmfQHnw/tincan/1795780_1674587580_p1gniiv0qs1i2n1qh8obkmgisv4_zip/assets/920VW8yNobtJTUKQ_0BCqumNO9G55pXDO-ExampleEventPattern_NOPROCESS_.png
)

#### Rule matching (coincidencia de reglas)
- para que el event pattern haga match con el evento
- el evento debe contener todos los campos del event pattern
- tambien deben de tener la misma estructura
- algun campo adicional en el evento que no se incluya en el patron entonces el patron sera ignorado

#### Filtrado de contenido (content filtering)
- tipos de filtrado de contenido (content filtering)
    1. Prefix matching
        - matcheara valores como "2017-10-02T18:43:48Z"
        ![alt](https://explore.skillbuilder.aws/files/a/w/aws_prod1_docebosaas_com/1685595600/0r_cJYQ_Uq8eBA0zmfQHnw/tincan/1795780_1674587580_p1gniiv0qs1i2n1qh8obkmgisv4_zip/assets/grLnc6lfxz-cnka-_nPhlPR9rOxKTgw6z-PrefixMatching_NOPROCESS_.png)
    2. Suffix matching
        ![alt](https://explore.skillbuilder.aws/files/a/w/aws_prod1_docebosaas_com/1685595600/0r_cJYQ_Uq8eBA0zmfQHnw/tincan/1795780_1674587580_p1gniiv0qs1i2n1qh8obkmgisv4_zip/assets/5D-Jl4nnA6zQh4lt_NAlGTfGzH25ljfoN-SuffixMatching_NOPROCESS_.png)
    3. Anything-but matching
        ![alt](https://explore.skillbuilder.aws/files/a/w/aws_prod1_docebosaas_com/1685595600/0r_cJYQ_Uq8eBA0zmfQHnw/tincan/1795780_1674587580_p1gniiv0qs1i2n1qh8obkmgisv4_zip/assets/2vh0fFrspMiWUOhm_yLGT2zgglOy5yQEc-Anything-ButMatching_NOPROCESS_.png)
    4. Numeric matching
        ![alt](https://explore.skillbuilder.aws/files/a/w/aws_prod1_docebosaas_com/1685595600/0r_cJYQ_Uq8eBA0zmfQHnw/tincan/1795780_1674587580_p1gniiv0qs1i2n1qh8obkmgisv4_zip/assets/XIuHwlLF5Hi9yoxN_acX_PlTlxXzm6wHM-NumericMatching_NOPROCESS_.png)
    5. IP address matching
        ![alt](https://explore.skillbuilder.aws/files/a/w/aws_prod1_docebosaas_com/1685595600/0r_cJYQ_Uq8eBA0zmfQHnw/tincan/1795780_1674587580_p1gniiv0qs1i2n1qh8obkmgisv4_zip/assets/9z0lvhhJUB7-qmPz_oTb7YQv1QCx0mHJ4-IPAddressMatching_NOPROCESS_.png)
    6. Exists matching
        - el campo **$detail.state** existe?
        ![alt](https://explore.skillbuilder.aws/files/a/w/aws_prod1_docebosaas_com/1685595600/0r_cJYQ_Uq8eBA0zmfQHnw/tincan/1795780_1674587580_p1gniiv0qs1i2n1qh8obkmgisv4_zip/assets/g6d5aIR7_uemgFhn_sXUinbhVpEjElaKh-ExistsMatching_NOPROCESS_.png)

#### Combinando multiples operaciones
![alt](https://explore.skillbuilder.aws/files/a/w/aws_prod1_docebosaas_com/1685595600/0r_cJYQ_Uq8eBA0zmfQHnw/tincan/1795780_1674587580_p1gniiv0qs1i2n1qh8obkmgisv4_zip/assets/9O_AKQ6G9IzAvNVY_EwfEhHUSCXf5QifE-CombinedRules_NOPROCESS_.png)

#### 'OR' condicion 'or' en todas las operaciones
![alt](https://explore.skillbuilder.aws/files/a/w/aws_prod1_docebosaas_com/1685595600/0r_cJYQ_Uq8eBA0zmfQHnw/tincan/1795780_1674587580_p1gniiv0qs1i2n1qh8obkmgisv4_zip/assets/ZPBg2BQ7xBvLuu_N_M7noBU0jcpET85Xz-ORComplexRules_NOPROCESS_.png)

#### Reglas programadas(scheduled rules)
- EventBridge soporta programacion con cron or rate expresiones.
- Todas las programaciones de eventos usan UTC+0 TZ.
- el minimo para hacer una programacion es de 1 minuto.