View a markdown version of this page

Publicação de eventos em um ônibus de eventos personalizado - Amazônia EventBridge

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á.

Publicação de eventos em um ônibus de eventos personalizado

Você publica eventos em um barramento de eventos personalizado com uma das duas operações de API, PutEvents ouPutRawEvents. A operação que você escolhe fixa a forma do evento entregue, e essa forma determina como você grava cada filtro, transformador e parâmetro de destino para o barramento. Escolha antes de escrever seu primeiro assinante. Para as duas formas, consulteEstrutura do evento: dados, metadados e metadados do sistema.

As duas operações produzem um tipo de evento e as EventBridge tratam de forma idêntica quando o evento está no ônibus. PutEventsé uma conveniênciaPutRawEvents: EventBridge pega os campos da entradaSource,DetailType, e outrosDetail, cria um envelope JSON a partir deles e armazena esse envelope como uma carga útil JSON com um tipo de conteúdo de. application/eventbridge+json A partir de então, a filtragem, a transformação, o pedido, a desduplicação, a retenção e a entrega funcionam exatamente como em um evento JSON publicado com. PutRawEvents A única diferença que um assinante vê é onde estão seus campos: na parte superior de Data para PutRawEvents e embaixo Data.detail dentro do envelope para. PutEvents Para Avro, Protobuf e cargas úteis opacas, consulte. Tipos de conteúdo compatíveis: JSON, Avro, Protobuf e bytes brutos

PutEvents PutRawEvents
Campo de carga útil Detail, uma string JSON Data, bytes em qualquer formato
Obrigatório em cada entrada Source, DetailType Data, SystemMetadata.ContentType
Tipo de conteúdo Definido por EventBridge para application/eventbridge+json Definido por você: application/jsonapplication/avro,application/protobuf, ouapplication/octet-stream. Consulte Tipos de conteúdo compatíveis: JSON, Avro, Protobuf e bytes brutos.
Seus próprios metadados Indisponível Metadata, um mapa de até 100 teclas
Entradas de pedido e desduplicação SystemMetadata.EventGroupId, SystemMetadata.DeduplicationId Os mesmos dois campos
Use quando Seus eventos são JSON e você quer o mesmo envelope que o Custom Event Bus - Classic produz Sua carga útil é binária ou não JSON, você precisa de suas próprias chaves de metadados ou deseja que a carga seja entregue exatamente como enviada

APIs de publicação

Ambas as operações usam um lote de 1 a 100 entradas por solicitação e retornam um resultado por entrada, na ordem da solicitação. EventBridge aceita ou rejeita cada entrada por si só: uma entrada rejeitada carrega um ErrorCode e ErrorMessage no lugar de umSuccessCode, e as outras entradas na mesma solicitação não são afetadas. Entradas em lote que pertencem uma à outra e leem cada resultado em vez de apenas o status HTTP; consulteLendo a resposta. Ambas as chamadas são baseadas em um orçamento de taxa de publicação para sua conta, e o ônibus em si tem uma cota de ingestão por segundo que conta cada editor e fonte de evento; consulte. Cotas personalizadas do Event Bus

Publique um evento JSON com PutEvents

aws eventsv2 put-events \ --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \ --entries '[ { "Source": "com.example.orders", "DetailType": "OrderPlaced", "Detail": "{\"orderId\":\"1001\",\"total\":42.5}" } ]'

Publique um evento bruto com PutRawEvents

Dataé um campo binário. No AWS CLI, forneça-o como texto base64. O exemplo a seguir publica a mesma carga JSON como bytes brutos com um tipo de conteúdo de e adiciona uma application/json chave de metadados.

aws eventsv2 put-raw-events \ --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \ --entries '[ { "Data": "eyJvcmRlcklkIjoiMTAwMSIsInRvdGFsIjo0Mi41fQ==", "Metadata": { "tenant": "acme" }, "SystemMetadata": { "ContentType": "application/json" } } ]'

Para publicar Avro ou Protobuf, nomeie um registro de esquema na solicitação com. --schema-registry-configuration RegistryUrié um ARN do AWS Glue Schema Registry ou um URL HTTPS do Confluent Cloud. Um registro é nomeado por solicitação, não no ônibus. Eventos com um tipo de conteúdo não application/octet-stream precisam de registro, pois EventBridge não os decodificam.

Publicação de bytes brutos

Para publicar uma carga que não EventBridge deve ser analisada nem inspecionada, chame PutRawEvents com os bytes Base64-encoded inseridos Data e SystemMetadata.ContentType defina como. application/octet-stream EventBridge armazena e entrega os bytes exatamente como foram enviados, portanto, um DATA filtro não pode combiná-los; roteie-os com METADATA as chaves que você definiu na entrada ou comSYSTEM_METADATA. O transformador de um assinante vê a carga como uma string em Base64. $events.Data Para as opções de entrega e a alternativa desserializada para Avro e Protobuf, consulteTipos de conteúdo compatíveis: JSON, Avro, Protobuf e bytes brutos; para saber como a carga útil aparece em um transformador, consulte. Transformando eventos com JSonata

Lendo a resposta

Ambas as operações retornam um resultado para cada entrada, na mesma ordem da solicitação. Cada resultado carrega um SuccessCode ou um ErrorCode ErrorMessage e. Verifique cada entrada, pois uma solicitação pode ser bem-sucedida enquanto as entradas individuais falham.

SuccessCodeé PUBLISHED ouDEDUPLICATED. DEDUPLICATEDsignifica que EventBridge reconheceu a entrada como uma duplicata de um evento que ela já aceitou e não armazenou uma segunda cópia. É um sucesso, não um erro. Para obter mais informações, consulte Ordenando e desduplicando eventos em um barramento de eventos personalizado.

Uma publicação relata que EventBridge aceitou o evento. Ele não informa a entrega. Para confirmar que um evento chegou, verifique o alvo.

Esta seção contém os seguintes tópicos: