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
Publicas eventos en un bus de eventos personalizado con una de las dos operaciones de la API, PutEvents oPutRawEvents. 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, consulteEstructura del evento: datos, metadatos y metadatos del sistema.
Las dos operaciones producen un tipo de evento y los EventBridge tratan de forma idéntica una vez que el evento está en marcha. PutEventses más prácticoPutRawEvents: EventBridge toma los campos de la entradaSource, DetailTypeDetail, 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 «DataparaPutRawEvents» y en la parte inferior del Data.detail sobre «paraPutEvents». Para ver las cargas útiles de Avro, Protobuf y opacas, consulta. Tipos de contenido compatibles: JSON, Avro, Protobuf y bytes sin procesar
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. |
| 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
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 unaSuccessCode, 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; consulteLeyendo la respuesta. 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
Publica un evento en JSON con 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}" } ]'
Publica un evento sin procesar con PutRawEvents
Dataes 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 RegistryUries 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
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, consulteTipos de contenido compatibles: JSON, Avro, Protobuf y bytes sin procesar; para ver cómo se ve la carga útil en un transformador, consulte. Transformación de eventos con JSonata
Leyendo la respuesta
Ambas operaciones devuelven un resultado para cada entrada, en el mismo orden que la solicitud. Cada resultado lleva una SuccessCode o una ErrorCode yErrorMessage. Compruebe todas las entradas, ya que una solicitud puede tener éxito mientras que las entradas individuales fallan.
SuccessCodees PUBLISHED oDEDUPLICATED. DEDUPLICATEDsignifica 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.
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: