

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.

# Filtrado de eventos para un suscriptor
<a name="eb-custom-bus-filtering"></a>

Un filtro selecciona los eventos que recibe un suscriptor. Adjunte un `FilterConfiguration` al suscriptor con uno o más filtros, cada uno de los cuales nombre una `Scope` y una `Pattern` en la sintaxis EventBridge del patrón de eventos. Por ejemplo, un `DATA` filtro con el patrón solo `{"detail":{"amount":[{"numeric":[">",500]}]}}` entrega los pedidos con los que se hayan publicado más de 500 pedidos`PutEvents`. En esta página se describe el modelo de filtro; para ver los operadores de patrones, consulte[Patrones de EventBridge eventos de Amazon](eb-event-patterns.md). Los filtros de suscriptor no admiten la coincidencia de caracteres comodín.

## Cómo funciona el filtrado
<a name="eb-custom-bus-filtering-how"></a>

Cada filtro tiene dos partes: a`Scope`, que es la parte del evento que el filtro examina (`DATA`,`METADATA`, o`SYSTEM_METADATA`; consulte[Estructura del evento: datos, metadatos y metadatos del sistema](eb-custom-bus-addressing.md)), y a`Pattern`, un patrón de eventos que se suministra como una cadena JSON. EventBridge combina los filtros en una configuración con AND: un evento debe coincidir con todos los filtros antes de que el suscriptor lo reciba. Un suscriptor que no `FilterConfiguration` recibe todos los eventos.

## Los tres ámbitos
<a name="eb-custom-bus-filtering-scopes"></a>

`DATA`  
Examina los datos del evento. `PutRawEvents`En efecto, los datos son la carga útil que ha enviado. `PutEvents`En efecto, los datos son el EventBridge sobre y los suyos `Detail` están anidados debajo de la `detail` clave. `DATA`los filtros admiten todos los operadores de patrones de eventos, excepto los comodines. EventBridge deserializa `application/avro` y convierte `application/protobuf` los eventos en JSON, y un `DATA` filtro examina ese JSON como cualquier otro evento de JSON. Un `application/octet-stream` evento no contiene datos que pueda leer un filtro, por lo que un suscriptor con un `DATA` filtro nunca encuentra ninguno `METADATA` y `SYSTEM_METADATA` los filtros siguen funcionando en él.

`METADATA`  
Examina los pares clave-valor establecidos por el editor. `Metadata` `PutRawEvents` `METADATA`los filtros solo coinciden con valores exactos: cada valor del patrón debe ser una matriz JSON de valores exactos y no `$or` se admiten operadores como `prefix` `numeric``exists`,, y. Para usar esos operadores, filtra por `DATA` o`SYSTEM_METADATA`. Un `PutEvents` evento no tiene metadatos del editor, por lo que un `METADATA` filtro nunca coincide con ninguno.

`SYSTEM_METADATA`  
Examina los EventBridge conjuntos de campos del evento, que se muestran en la tabla siguiente. `SYSTEM_METADATA`los filtros admiten todos los operadores de patrones de eventos, excepto los caracteres comodín. Los campos que se EventBridge generan llevan el `aws:` prefijo.


| Campo | Description (Descripción) | Presente el | 
| --- | --- | --- | 
| ContentType | El tipo de contenido de los datos del evento | Cada evento | 
| DeduplicationId | El identificador de deduplicación | Cada evento | 
| EventGroupId | El grupo de eventos | Cada evento | 
| aws:EventId | El identificador EventBridge asignado | Cada evento | 
| aws:IngestionTime | Cuando se EventBridge recibió el evento | Cada evento | 
| aws:SequenceNumber | El número de secuencia EventBridge asignado | Cada evento | 
| aws:DeliveryType | LIVE o REPLAY | Cada evento entregado | 
| aws:SchemaId | El identificador del esquema del registro: un UUID de versión para Glue y un entero para Confluent | Eventos Avro y Protobuf | 
| aws:RegistryType | Glue o Confluent | Eventos Avro y Protobuf | 
| aws:Source | El origen del evento | PutEvents, AWS servicios y eventos para socios de SaaS | 
| aws:DetailType | El tipo de detalle del evento | PutEvents, AWS servicios y eventos para socios de SaaS | 

**nota**  
Para filtrar los eventos de AWS servicio o los eventos de socios de SaaS, utilice `aws:Source` y. `aws:DetailType` EventBridge escribe estos campos y ninguna llamada de publicación puede establecer una fuente que comience por`aws.`, de modo que identifique el origen verificado del evento. No utilices los `detail-type` campos `source` y de los datos del evento para este fin; cualquier editor puede escribirlos. Consulte [Fuentes de eventos para un bus de eventos personalizado](eb-custom-bus-event-sources.md).

## Ejemplo: filtrar un evento publicado con PutRawEvents
<a name="eb-custom-bus-filtering-raw-example"></a>

`PutRawEvents`publica una carga útil con un tipo de contenido. Un `DATA` filtro coincide directamente con la carga útil y un `METADATA` filtro con el mapa de metadatos del editor. La siguiente configuración tiene un filtro por ámbito; el suscriptor recibe un evento solo cuando los tres coinciden: la carga útil supera los 500, la clave `region` de metadatos sí y el tipo de contenido es JSON. `amount` `EU`

```
{
    "Filters": [
        { "Scope": "DATA", "Pattern": "{\"amount\":[{\"numeric\":[\">\",500]}]}" },
        { "Scope": "METADATA", "Pattern": "{\"region\":[\"EU\"]}" },
        { "Scope": "SYSTEM_METADATA", "Pattern": "{\"ContentType\":[\"application/json\"]}" }
    ]
}
```

## Ejemplo: filtrar un evento publicado con PutEvents
<a name="eb-custom-bus-filtering-putevents-example"></a>

`PutEvents`publica un evento en el EventBridge sobre, creado a partir de las entradas `Source``DetailType`,`Resources`,`Time`, y`Detail`. Un `DATA` filtro coincide con este sobre, con el tuyo `Detail` anidado debajo`detail`. El evento `ContentType` es `application/eventbridge+json` `aws:Source` y `aws:DetailType` proviene de la entrada `Source` y`DetailType`, y el sobre también expone `source` y está dentro del `detail-type` `DATA` alcance. La siguiente configuración coincide cuando el `amount` detalle es superior a 500 y el origen lo es`com.myapp.storage`.

```
{
    "Filters": [
        { "Scope": "DATA", "Pattern": "{\"detail\":{\"amount\":[{\"numeric\":[\">\",500]}]}}" },
        { "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:Source\":[\"com.myapp.storage\"]}" }
    ]
}
```

## Ejemplo: filtrar eventos de una fuente de eventos
<a name="eb-custom-bus-filtering-event-source-example"></a>

Los eventos que ingiere una fuente de eventos llegan en el EventBridge sobre, con el servicio o socio de origen. `aws:Source` Para recibir solo los eventos creados por objetos de Amazon S3 para un bucket, haga coincidir la entrada del servicio `SYSTEM_METADATA` y la del bucket. `DATA` En el caso de un socio, haga coincidir el nombre de la fuente del evento del socio, por ejemplo, con un `prefix` signo «on». `aws.partner/example.com`

```
{
    "Filters": [
        { "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:Source\":[\"aws.s3\"]}" },
        { "Scope": "DATA", "Pattern": "{\"detail-type\":[\"Object Created\"],\"detail\":{\"bucket\":{\"name\":[\"amzn-s3-demo-bucket\"]}}}" }
    ]
}
```

## Comportamiento y límites
<a name="eb-custom-bus-filtering-limits"></a>
+ **Y combinación**: un evento debe coincidir con todos los filtros de la configuración.
+ **Sin filtro**: un suscriptor sin configuración de filtros recibe todos los eventos.
+ **Un filtro por ámbito**: una configuración contiene como máximo un filtro para cada ámbito, es decir, como máximo tres filtros. EventBridge rechaza una configuración con dos filtros del mismo alcance.
+ **Comodín**: se rechazan el `wildcard` operador y `anything-but` con un comodín y el mensaje El patrón de * filtro no debe contener caracteres comodín (comodín, cualquier cosa menos comodín). *
+ **Combinaciones de patrones con `$or`**: EventBridge rechaza un filtro cuyo uso produzca más de 1000 combinaciones de patrones. `$or` Multiplica el número de argumentos de cada `$or` matriz: una matriz de tres da tres combinaciones, una segunda matriz de dos da seis.
+ **Tamaño**: todos los filtros de una configuración comparten un límite de 4.096 bytes en los tres ámbitos.
+ **Forma del patrón**: un `DATA` patrón puede tener una matriz en su raíz `METADATA` y `SYSTEM_METADATA` los patrones deben ser objetos JSON. Un patrón que no sea JSON válido se rechaza al crear o actualizar el suscriptor.
+ **Cambios**: los filtros de un suscriptor pueden cambiar 24 veces en 24 horas consecutivas; consulte[Actualización, pausa y reanudación de un suscriptor](eb-custom-bus-update.md).

Un patrón escrito para la forma incorrecta no falla; no coincide con nada. Antes de confiar en un suscriptor, publica un evento que deba coincidir y otro que no, y comprueba ambos en el objetivo.