View a markdown version of this page

Ereignisse auf einem benutzerdefinierten Event-Bus veröffentlichen - Amazon EventBridge

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Ereignisse auf einem benutzerdefinierten Event-Bus veröffentlichen

Sie veröffentlichen Ereignisse auf einem Custom Event Bus mit einer von zwei API-Operationen, PutEvents oderPutRawEvents. Die Operation, die Sie wählen, legt die Form des übermittelten Ereignisses fest, und diese Form bestimmt, wie Sie jeden Filter, Transformator und Zielparameter für den Bus schreiben. Wählen Sie, bevor Sie Ihren ersten Abonnenten schreiben. Informationen zu den beiden Formen finden Sie unterEventstruktur: Daten, Metadaten und Systemmetadaten.

Die beiden Operationen erzeugen eine Art von Ereignis und EventBridge behandeln sie identisch, sobald das Ereignis im Bus stattfindet. PutEventsist einfacher alsPutRawEvents: EventBridge nimmt die,, und andere Felder des Eintrags Source DetailTypeDetail, erstellt daraus einen JSON-Envelope und speichert diesen Envelope als JSON-Nutzlast mit dem Inhaltstyp. application/eventbridge+json Von da an funktionieren Filterung, Transformation, Sortierung, Deduplizierung, Aufbewahrung und Bereitstellung genau wie bei einem JSON-Ereignis, das mit veröffentlicht wurde. PutRawEvents Der einzige Unterschied, den ein Abonnent sieht, besteht darin, wo sich Ihre Felder Data.detail befinden: oben in Data für PutRawEvents und unter dem Umschlag für. PutEvents Informationen zu Avro-, Protobuf- und undurchsichtigen Payloads finden Sie unter. Unterstützte Inhaltstypen: JSON, Avro, Protobuf und Rohbytes

PutEvents PutRawEvents
Feld „Payload“ Detail, eine JSON-Zeichenfolge Data, Bytes in einem beliebigen Format
In jedem Eintrag erforderlich Source, DetailType Data, SystemMetadata.ContentType
Inhaltstyp Eingestellt EventBridge von application/eventbridge+json Von Ihnen festgelegt: application/jsonapplication/avro,application/protobuf, oderapplication/octet-stream. Siehe Unterstützte Inhaltstypen: JSON, Avro, Protobuf und Rohbytes.
Deine eigenen Metadaten Nicht verfügbar Metadata, eine Karte mit bis zu 100 Schlüsseln
Eingaben zum Ordnen und Deduplizieren SystemMetadata.EventGroupId, SystemMetadata.DeduplicationId Dieselben zwei Felder
Anwendungsfall Ihre Ereignisse sind im JSON-Format und Sie möchten den gleichen Envelope, den Custom Event Bus - Classic erzeugt Ihre Payload ist binär oder nicht-JSON, Sie benötigen Ihre eigenen Metadatenschlüssel, oder Sie möchten, dass die Payload genau so geliefert wird, wie sie gesendet wurde

Veröffentlichen Sie APIs

Beide Operationen benötigen einen Stapel von 1 bis 100 Einträgen pro Anfrage und geben ein Ergebnis pro Eintrag in der Reihenfolge der Anfragen zurück. EventBridge akzeptiert oder lehnt jeden Eintrag für sich ab: Ein abgelehnter Eintrag erhält ein ErrorCode und ErrorMessage anstelle von aSuccessCode, und die anderen Einträge in derselben Anfrage bleiben davon unberührt. Batch-Einträge, die zusammengehören, und lesen jedes Ergebnis und nicht nur den HTTP-Status; siehe. Die Antwort lesen Für beide Aufrufe wird ein Budget für die Veröffentlichungsrate Ihres Kontos verwendet, und der Bus selbst hat eine Aufnahmequote pro Sekunde, bei der jeder Herausgeber und jede Ereignisquelle gezählt wird; siehe. Benutzerdefinierte Event Bus-Kontingente

Veröffentlichen Sie ein JSON-Event mit 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}" } ]'

Veröffentlichen Sie ein RAW-Event mit PutRawEvents

Dataist ein Binärfeld. Geben Sie es in der AWS CLI als Base64-Text an. Das folgende Beispiel veröffentlicht dieselbe JSON-Nutzlast als Rohbytes mit dem Inhaltstyp und fügt einen Metadatenschlüssel hinzu. application/json

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" } } ]'

Um Avro oder Protobuf zu veröffentlichen, benennen Sie eine Schemaregistrierung in der Anfrage mit. --schema-registry-configuration RegistryUriist eine AWS Glue Schema Registry ARN oder eine Confluent Cloud HTTPS-URL. Eine Registry wird pro Anfrage benannt, nicht auf dem Bus. Ereignisse mit dem Inhaltstyp application/octet-stream benötigen keine Registrierung, da sie EventBridge nicht dekodiert werden.

Veröffentlichen von Rohbytes

Um eine Nutzlast zu veröffentlichen, die weder EventBridge analysiert noch inspiziert werden soll, rufen Sie PutRawEvents mit den Base64-encoded SystemMetadata.ContentType eingegebenen Bytes auf Data auf. application/octet-stream EventBridge speichert und liefert die Bytes genau so, wie sie gesendet wurden, sodass ein DATA Filter sie nicht zuordnen kann; leiten Sie sie mit den METADATA Schlüsseln weiter, die Sie für den Eintrag festgelegt haben, oder mit. SYSTEM_METADATA Der Transformator eines Abonnenten sieht die Nutzlast als Base64-Zeichenfolge in. $events.Data Informationen zu den Übertragungsoptionen und der deserialisierten Alternative für Avro und Protobuf finden Sie unterUnterstützte Inhaltstypen: JSON, Avro, Protobuf und Rohbytes; wie die Nutzlast für einen Transformator aussieht, finden Sie unter. Transformieren von Ereignissen mit JSonata

Die Antwort lesen

Beide Operationen geben für jeden Eintrag ein Ergebnis zurück, und zwar in derselben Reihenfolge wie die Anfrage. Jedes Ergebnis enthält entweder ein SuccessCode oder ein ErrorCode undErrorMessage. Überprüfen Sie jeden Eintrag, da eine Anfrage erfolgreich sein kann, während einzelne Einträge fehlschlagen.

SuccessCodeist PUBLISHED oderDEDUPLICATED. DEDUPLICATEDbedeutet, dass der Eintrag als Duplikat eines Ereignisses EventBridge erkannt wurde, das es bereits akzeptiert und keine zweite Kopie gespeichert hat. Es ist ein Erfolg, kein Fehler. Weitere Informationen finden Sie unter Reihenfolge und Deduplizierung von Ereignissen auf einem Custom Event Bus.

In einer Antwort von Publish wird gemeldet, dass das Ereignis EventBridge akzeptiert wurde. Die Lieferung wird nicht gemeldet. Um zu bestätigen, dass ein Ereignis eingetroffen ist, überprüfen Sie das Ziel.

In diesem Abschnitt werden folgende Themen behandelt: