

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

Sie veröffentlichen Ereignisse auf einem Custom Event Bus mit einer von zwei API-Operationen, `PutEvents` oder`PutRawEvents`. 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 unter[Eventstruktur: Daten, Metadaten und Systemmetadaten](eb-custom-bus-addressing.md).

Die beiden Operationen erzeugen eine Art von Ereignis und EventBridge behandeln sie identisch, sobald das Ereignis im Bus stattfindet. `PutEvents`ist einfacher als`PutRawEvents`: EventBridge nimmt die,, und andere Felder des Eintrags `Source` `DetailType``Detail`, 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](eb-custom-bus-open-formats.md)


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

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

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

### Veröffentlichen Sie ein RAW-Event mit PutRawEvents
<a name="eb-custom-bus-publish-putrawevents"></a>

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

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 unter[Unterstützte Inhaltstypen: JSON, Avro, Protobuf und Rohbytes](eb-custom-bus-open-formats.md); wie die Nutzlast für einen Transformator aussieht, finden Sie unter. [Transformieren von Ereignissen mit JSonata](eb-custom-bus-transform.md)

## Die Antwort lesen
<a name="eb-custom-bus-publish-results"></a>

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` und`ErrorMessage`. Überprüfen Sie jeden Eintrag, da eine Anfrage erfolgreich sein kann, während einzelne Einträge fehlschlagen.

`SuccessCode`ist `PUBLISHED` oder`DEDUPLICATED`. `DEDUPLICATED`bedeutet, 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](eb-custom-bus-ordering.md).

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:
+ [Unterstützte Inhaltstypen: JSON, Avro, Protobuf und Rohbytes](eb-custom-bus-open-formats.md)
+ [Ereignisquellen für einen benutzerdefinierten Event-Bus](eb-custom-bus-event-sources.md)
+ [Eventstruktur: Daten, Metadaten und Systemmetadaten](eb-custom-bus-addressing.md)