

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.

# Estructura del evento: datos, metadatos y metadatos del sistema
<a name="eb-custom-bus-addressing"></a>

Los filtros, los transformadores y los parámetros de destino comparten un modelo de direccionamiento. EventBridge entrega cada evento con tres nombres de nivel superior: `Data` contiene la carga útil, `Metadata` contiene las claves que ha suministrado y `SystemMetadata` contiene los campos que asigna. `PutRawEvents` EventBridge La ubicación de tus propios campos `Data` depende de la API de publicación. Ambas API producen el mismo tipo de evento y EventBridge filtran y transforman ambas de la misma manera. La diferencia es solo lo que está dentro`Data`.


| Parte | Publicado con `PutRawEvents` | Publicado con `PutEvents` | 
| --- | --- | --- | 
| Data | Tu carga útil, exactamente como se envió | Un sobre consource, detail-typetime, y otros campos. Su carga útil es el valor dedetail. | 
| Metadata | Tus claves de metadatos | No presente | 
| SystemMetadata | Campos asignados por EventBridge | Campos asignados por EventBridge | 

Una expresión de JSonata ve el evento como. `$events` El mismo identificador de pedido se encuentra en una ruta diferente para cada API.

Publicado con`PutRawEvents`:

```
$events.Data.orderId
```

Publicado con`PutEvents`:

```
$events.Data.detail.orderId
```

La misma diferencia se aplica a un filtro con un alcance de`DATA`. El patrón se escribe contra el contenido de`Data`.

Publicado con`PutRawEvents`:

```
{ "total": [ { "numeric": [ ">", 500 ] } ] }
```

Publicado con`PutEvents`:

```
{ "detail": { "total": [ { "numeric": [ ">", 500 ] } ] } }
```

**importante**  
Una expresión o patrón escrito para la forma incorrecta no falla. No produce ningún resultado, el filtro no coincide con ningún evento y el transformador no produce ninguna salida. Un suscriptor cuyo filtro no coincide con nada tiene el mismo aspecto que un suscriptor que no funciona. Antes de confiar en un suscriptor, publica un evento que deba coincidir y otro que no, y confirma que ambos resultados cumplen con el objetivo. Si los productores publican con ambas API en el mismo bus, asigne a cada tipo de tráfico sus propios suscriptores.

## SystemMetadata campos
<a name="eb-custom-bus-addressing-system"></a>

`SystemMetadata`es el mismo para ambas API y es la única parte del evento que escribe EventBridge por sí misma. Un filtro con un rango de `SYSTEM_METADATA` coincidencias en su contra, y una expresión de JSonata lo lee como. `$events.SystemMetadata` Cada valor es una cadena. EventBridge omite un campo que no tiene ningún valor, por lo que una referencia de JSonata a él se evalúa como`undefined`; only `aws:DeliveryType` está siempre presente. En la siguiente tabla se enumeran los campos.


| Campo | Valor | 
| --- | --- | 
| aws:EventId | El identificador EventBridge asignado, devuelto al editor como EventId | 
| aws:Source, aws:DetailType | La entrada es Source y DetailType paraPutEvents; el servicio o socio de origen y su tipo de evento para una fuente de eventos. Ninguna convocatoria de publicación puede establecer una fuente que comience poraws., por lo que {"aws:Source":["aws.s3"]} demuestra que Amazon S3 produjo el evento | 
| aws:DeliveryType | LIVEpara un evento entregado tal como llegó, REPLAY para un evento leído del historial conservado. Consulte [Reproducción de eventos retenidos para un suscriptor](eb-custom-bus-replay.md) | 
| EventGroupId, DeduplicationId | Tal y como se suministró en el momento de la publicación. Consulte [Pedido y deduplicación de eventos en un bus de eventos personalizado](eb-custom-bus-ordering.md) | 
| ContentType | El tipo de contenido tal como se publicó: application/eventbridge\+json forPutEvents; forPutRawEvents, el valor de la entrada, por lo que los datos de Avro y Protobuf EventBridge descodificados en JSON aún muestran o application/avro application/protobuf | 
| aws:IngestionTime | Cuando el autobús aceptó el evento | 
| aws:SequenceNumber | La posición del evento en el autobús; aumenta con el orden de ingesta | 
| aws:SchemaId, aws:RegistryType | El esquema y el registro utilizados para deserializar una carga útil de Avro o Protobuf; de lo contrario, están ausentes | 

`Metadata`solo está presente en los eventos publicados con `PutRawEvents` esa configuración; para todos los demás eventos, está vacío. For`application/octet-stream`, `Data` es una cadena en Base64. En una `Transformer` expresión `$events` hay un evento; solo en un objetivo universal `Input` es una matriz. Consulte [Transformación de eventos con JSonata](eb-custom-bus-transform.md).