

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.

# Publicación de eventos en un bus de eventos personalizado
<a name="eb-custom-bus-publish"></a>

Publicas eventos en un bus de eventos personalizado con una de las dos operaciones de la API, `PutEvents` o`PutRawEvents`. La operación que elija fija la forma del evento entregado, y esa forma determina cómo escribir cada filtro, transformador y parámetro de destino para el bus. Elige antes de escribir tu primer suscriptor. Para ver las dos formas, consulte[Estructura del evento: datos, metadatos y metadatos del sistema](eb-custom-bus-addressing.md).

Las dos operaciones producen un tipo de evento y los EventBridge tratan de forma idéntica una vez que el evento está en marcha. `PutEvents`es más práctico`PutRawEvents`: EventBridge toma los campos de la entrada`Source`, `DetailType``Detail`, y otros, crea un sobre JSON a partir de ellos y almacena ese sobre como una carga JSON con un tipo de contenido de. `application/eventbridge+json` A partir de ese momento, el filtrado, la transformación, el pedido, la deduplicación, la retención y la entrega funcionan exactamente igual que en un evento JSON publicado con. `PutRawEvents` La única diferencia que ve un suscriptor es dónde se encuentran los campos: en la parte superior de «`Data`para`PutRawEvents`» y en la parte inferior del `Data.detail` sobre «para`PutEvents`». Para ver las cargas útiles de Avro, Protobuf y opacas, consulta. [Tipos de contenido compatibles: JSON, Avro, Protobuf y bytes sin procesar](eb-custom-bus-open-formats.md)


|  | `PutEvents` | `PutRawEvents` | 
| --- | --- | --- | 
| Campo de carga útil | Detail, una cadena JSON | Data, bytes en cualquier formato | 
| Obligatorio en cada entrada | Source, DetailType | Data, SystemMetadata.ContentType | 
| Tipo de contenido | Establecido EventBridge por application/eventbridge\+json | Definido por ti: application/jsonapplication/avro,application/protobuf,, oapplication/octet-stream. Consulte [Tipos de contenido compatibles: JSON, Avro, Protobuf y bytes sin procesar](eb-custom-bus-open-formats.md). | 
| Tus propios metadatos | No disponible | Metadata, un mapa de hasta 100 claves | 
| Entradas de pedido y deduplicación | SystemMetadata.EventGroupId, SystemMetadata.DeduplicationId | Los mismos dos campos | 
| Usar cuando | Tus eventos son JSON y quieres tener el mismo sobre que produce Custom Event Bus - Classic | Tu carga útil es binaria o no es JSON, necesitas tus propias claves de metadatos o quieres que la carga se entregue exactamente como se envió | 

## Publica las API
<a name="eb-custom-bus-publish-apis"></a>

Ambas operaciones toman un lote de 1 a 100 entradas por solicitud y arrojan un resultado por entrada, en el orden de solicitud. EventBridge acepta o rechaza cada entrada por separado: una entrada rechazada lleva una `ErrorCode` y `ErrorMessage` en lugar de una`SuccessCode`, y las demás entradas de la misma solicitud no se ven afectadas. Agrupa las entradas que van juntas y leen todos los resultados en lugar de leer solo el estado HTTP; consulte[Leyendo la respuesta](#eb-custom-bus-publish-results). Ambas llamadas se basan en un presupuesto de tarifa de publicación de la cuenta, y el propio bus tiene una cuota de ingesta por segundo que incluye todos los editores y fuentes de eventos; consulte. [Cuotas personalizadas de Event Bus](eb-quota.md#eb-custom-bus-quotas)

### Publica un evento en JSON con 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}"
        }
    ]'
```

### Publica un evento sin procesar con PutRawEvents
<a name="eb-custom-bus-publish-putrawevents"></a>

`Data`es un campo binario. En AWS CLI, suminístrelo como texto en base64. En el siguiente ejemplo, se publica la misma carga útil de JSON como bytes sin procesar con un tipo de contenido de `application/json` y se agrega una clave de metadatos.

```
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 o Protobuf, asigne un nombre a un registro de esquema en la solicitud con. `--schema-registry-configuration` `RegistryUri`es un ARN de AWS Glue Schema Registry o una URL HTTPS de Confluent Cloud. Un registro se nombra por solicitud, no en el bus. Los eventos con un tipo de contenido no `application/octet-stream` necesitan registrarse, ya que EventBridge no los decodifica.

## Publicar bytes sin procesar
<a name="eb-custom-bus-publish-raw-bytes"></a>

Para publicar una carga útil que no EventBridge debe analizarse ni inspeccionarse, llame `PutRawEvents` con los bytes introducidos `Data` y `SystemMetadata.ContentType` configurados Base64-encoded en. `application/octet-stream` EventBridge almacena y entrega los bytes exactamente como se enviaron, por lo que un `DATA` filtro no puede compararlos; diríjalos con `METADATA` las claves que configuró en la entrada o con `SYSTEM_METADATA` ellas. El transformador de un suscriptor ve la carga útil como una cadena en Base64. `$events.Data` Para conocer las opciones de entrega y la alternativa deserializada para Avro y Protobuf, consulte[Tipos de contenido compatibles: JSON, Avro, Protobuf y bytes sin procesar](eb-custom-bus-open-formats.md); para ver cómo se ve la carga útil en un transformador, consulte. [Transformación de eventos con JSonata](eb-custom-bus-transform.md)

## Leyendo la respuesta
<a name="eb-custom-bus-publish-results"></a>

Ambas operaciones devuelven un resultado para cada entrada, en el mismo orden que la solicitud. Cada resultado lleva una `SuccessCode` o una `ErrorCode` y`ErrorMessage`. Compruebe todas las entradas, ya que una solicitud puede tener éxito mientras que las entradas individuales fallan.

`SuccessCode`es `PUBLISHED` o`DEDUPLICATED`. `DEDUPLICATED`significa que EventBridge reconoció la entrada como un duplicado de un evento que ya había aceptado y no almacenó una segunda copia. Es un éxito, no un error. Para obtener más información, consulte [Pedido y deduplicación de eventos en un bus de eventos personalizado](eb-custom-bus-ordering.md).

Una publicación informa de que se EventBridge ha aceptado el evento. No informa sobre la entrega. Para confirmar que ha llegado un evento, comprueba el objetivo.

Esta sección contiene los siguientes temas:
+ [Tipos de contenido compatibles: JSON, Avro, Protobuf y bytes sin procesar](eb-custom-bus-open-formats.md)
+ [Fuentes de eventos para un bus de eventos personalizado](eb-custom-bus-event-sources.md)
+ [Estructura del evento: datos, metadatos y metadatos del sistema](eb-custom-bus-addressing.md)