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
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á dentroData.
| 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 comPutRawEvents:
$events.Data.orderId
Publicado comPutEvents:
$events.Data.detail.orderId
A mesma diferença se aplica a um filtro com um escopo deDATA. O padrão é escrito com base no conteúdo deData.
Publicado comPutRawEvents:
{ "total": [ { "numeric": [ ">", 500 ] } ] }
Publicado comPutEvents:
{ "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
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 comoundefined; 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 |
EventGroupId, DeduplicationId | Conforme fornecido no momento da publicação. Consulte Ordenando e desduplicando eventos em um barramento de eventos personalizado |
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 |
Metadataestá presente somente em eventos publicados com PutRawEvents esse conjunto; para todos os outros eventos, ele está vazio. Paraapplication/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.