

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Estrutura do evento: dados, metadados e metadados do sistema
<a name="eb-custom-bus-addressing"></a>

Filtros, transformadores e parâmetros de destino compartilham um modelo de endereçamento. EventBridge entrega cada evento sob três nomes de nível superior: `Data` contém a carga útil, `Metadata` contém as chaves que você forneceu `PutRawEvents` e `SystemMetadata` contém os campos que EventBridge atribui. A localização dos seus próprios campos `Data` depende da API de publicação. As duas APIs produzem o mesmo tipo de evento e EventBridge filtram e transformam as duas da mesma maneira. A diferença é apenas o que está dentro`Data`.


| Peça | Publicado com `PutRawEvents` | Publicado com `PutEvents` | 
| --- | --- | --- | 
| Data | Sua carga útil, exatamente como enviada | Um envelope comsource, detail-typetime, e outros campos. Sua carga útil é o valor de. detail | 
| Metadata | Suas chaves de metadados | Não está presente | 
| SystemMetadata | Campos atribuídos por EventBridge | Campos atribuídos por EventBridge | 

Uma expressão JSOnata vê o evento como. `$events` O mesmo identificador de pedido está em um caminho diferente para cada API.

Publicado com`PutRawEvents`:

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

Publicado com`PutEvents`:

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

A mesma diferença se aplica a um filtro com um escopo de`DATA`. O padrão é escrito com base no conteúdo de`Data`.

Publicado com`PutRawEvents`:

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

Publicado com`PutEvents`:

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

**Importante**  
Uma expressão ou padrão escrito para a forma errada não falha. Ele não resolve nada, o filtro não corresponde a nenhum evento e o transformador não produz nenhuma saída. Um assinante cujo filtro não corresponde a nada parece idêntico a um assinante que não está funcionando. Antes de confiar em um assinante, publique um evento que deva corresponder e outro que não, e confirme os dois resultados na meta. Se os produtores publicarem com as duas APIs no mesmo barramento, atribua a cada tipo de tráfego seus próprios assinantes.

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

`SystemMetadata`é o mesmo para ambas as APIs e é a única parte do evento que grava EventBridge por si só. Um filtro com um escopo de `SYSTEM_METADATA` correspondências e uma expressão JSOnata o lê como. `$events.SystemMetadata` Cada valor é uma string. EventBridge omite um campo que não tem valor, portanto, uma referência JSONATA a ele é avaliada como`undefined`; only `aws:DeliveryType` está sempre presente. A tabela a seguir lista os campos.


| Campo | Valor | 
| --- | --- | 
| aws:EventId | O identificador EventBridge atribuído, devolvido ao editor como EventId | 
| aws:Source, aws:DetailType | A entrada é Source e DetailType paraPutEvents; o serviço ou parceiro de origem e seu tipo de evento para uma fonte de evento. Nenhuma chamada de publicação pode definir uma fonte que comece comaws., então {"aws:Source":["aws.s3"]} prova que o Amazon S3 produziu o evento | 
| aws:DeliveryType | LIVEpara um evento entregue assim que chegou, REPLAY para uma leitura da história retida. Consulte [Reproduzir eventos retidos para um assinante](eb-custom-bus-replay.md) | 
| EventGroupId, DeduplicationId | Conforme fornecido no momento da publicação. Consulte [Ordenando e desduplicando eventos em um barramento de eventos personalizado](eb-custom-bus-ordering.md) | 
| ContentType | O tipo de conteúdo conforme publicado: application/eventbridge\+json forPutEvents; forPutRawEvents, o valor da entrada, então os dados Avro e Protobuf EventBridge decodificados para JSON ainda mostram ou application/avro application/protobuf | 
| aws:IngestionTime | Quando o ônibus aceitou o evento | 
| aws:SequenceNumber | A posição do evento no ônibus; aumenta com a ordem de ingestão | 
| aws:SchemaId, aws:RegistryType | O esquema e o registro usados para desserializar uma carga útil do Avro ou do Protobuf; caso contrário, caso contrário | 

`Metadata`está presente somente em eventos publicados com `PutRawEvents` esse conjunto; para todos os outros eventos, ele está vazio. Para`application/octet-stream`, `Data` é uma string Base64. Em uma `Transformer` expressão `$events` há um evento; somente em um alvo universal `Input` é uma matriz. Consulte [Transformando eventos com JSonata](eb-custom-bus-transform.md).