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: