

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
<a name="eb-custom-bus-publish"></a>

Você publica eventos em um barramento de eventos personalizado com uma das duas operações de API, `PutEvents` ou`PutRawEvents`. 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, consulte[Estrutura do evento: dados, metadados e metadados do sistema](eb-custom-bus-addressing.md).

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ência`PutRawEvents`: EventBridge pega os campos da entrada`Source`,`DetailType`, e outros`Detail`, 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](eb-custom-bus-open-formats.md)


|  | `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](eb-custom-bus-open-formats.md). | 
| 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
<a name="eb-custom-bus-publish-apis"></a>

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 um`SuccessCode`, 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; consulte[Lendo a resposta](#eb-custom-bus-publish-results). 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](eb-quota.md#eb-custom-bus-quotas)

### Publique um evento JSON com PutEvents
<a name="eb-custom-bus-publish-putevents"></a>

```
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
<a name="eb-custom-bus-publish-putrawevents"></a>

`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
<a name="eb-custom-bus-publish-raw-bytes"></a>

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 com`SYSTEM_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, consulte[Tipos de conteúdo compatíveis: JSON, Avro, Protobuf e bytes brutos](eb-custom-bus-open-formats.md); para saber como a carga útil aparece em um transformador, consulte. [Transformando eventos com JSonata](eb-custom-bus-transform.md)

## Lendo a resposta
<a name="eb-custom-bus-publish-results"></a>

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` ou`DEDUPLICATED`. `DEDUPLICATED`significa 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](eb-custom-bus-ordering.md).

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:
+ [Tipos de conteúdo compatíveis: JSON, Avro, Protobuf e bytes brutos](eb-custom-bus-open-formats.md)
+ [Fontes de eventos para um ônibus de eventos personalizado](eb-custom-bus-event-sources.md)
+ [Estrutura do evento: dados, metadados e metadados do sistema](eb-custom-bus-addressing.md)