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.
AWS AppSync JavaScript Resolver-Funktionsreferenz für die EventBridge Datenquelle
Die mit der EventBridge Datenquelle verwendete AWS AppSync Resolver-Funktion Request and Response ermöglicht es Ihnen, benutzerdefinierte Ereignisse an den EventBridge Amazon-Bus zu senden.
Anforderung
Der Request-Handler ermöglicht es Ihnen, mehrere benutzerdefinierte Ereignisse an einen EventBridge Event-Bus zu senden:
export function request(ctx) { return { "operation" : "PutEvents", "events" : [{}] } }
Eine EventBridge PutEvents
Anfrage hat die folgende Typdefinition:
type PutEventsRequest = { operation: 'PutEvents' events: { source: string detail: { [key: string]: any } detailType: string resources?: string[] time?: string // RFC3339 Timestamp format }[] }
Antwort
Wenn der PutEvents
Vorgang erfolgreich ist, EventBridge ist die Antwort von enthalten inctx.result
:
export function response(ctx) { if(ctx.error) util.error(ctx.error.message, ctx.error.type, ctx.result) else return ctx.result }
Fehler, die bei der Ausführung von PutEvents
Vorgängen wie InternalExceptions
oder auftretenTimeouts
, werden in angezeigtctx.error
. Eine Liste der EventBridge häufigsten Fehler finden Sie in der Referenz zu EventBridge häufigen Fehlern.
Sie result
werden die folgende Typdefinition haben:
type PutEventsResult = { Entries: { ErrorCode: string ErrorMessage: string EventId: string }[] FailedEntryCount: number }
-
Einträge
Die Ergebnisse des aufgenommenen Ereignisses, sowohl erfolgreich als auch erfolglos. Wenn die Aufnahme erfolgreich war, enthält der Eintrag das
EventID
. Andernfalls können Sie dasErrorCode
und verwenden,ErrorMessage
um das Problem mit dem Eintrag zu identifizieren.Für jeden Datensatz entspricht der Index des Antwortelements dem Index im Anforderungsarray.
-
FailedEntryCount
Die Anzahl der fehlgeschlagenen Einträge. Dieser Wert wird als Ganzzahl dargestellt.
Weitere Hinweise zur Antwort von PutEvents
finden Sie unter PutEvents.
Beispiel für eine Antwort 1
Das folgende Beispiel zeigt einen PutEvents
Vorgang mit zwei erfolgreichen Ereignissen:
{ "Entries" : [ { "EventId": "11710aed-b79e-4468-a20b-bb3c0c3b4860" }, { "EventId": "d804d26a-88db-4b66-9eaf-9a11c708ae82" } ], "FailedEntryCount" : 0 }
Beispiel für eine Antwort 2
Das folgende Beispiel zeigt einen PutEvents
Vorgang mit drei Ereignissen, zwei Erfolgen und einem Fehlschlag:
{ "Entries" : [ { "EventId": "11710aed-b79e-4468-a20b-bb3c0c3b4860" }, { "EventId": "d804d26a-88db-4b66-9eaf-9a11c708ae82" }, { "ErrorCode" : "SampleErrorCode", "ErrorMessage" : "Sample Error Message" } ], "FailedEntryCount" : 1 }
PutEvents
-Felder
PutEvents
enthält die folgenden Felder für Zuordnungsvorlagen:
-
Version
Das
version
Feld ist allen Vorlagen für die Anforderungszuweisung gemeinsam und definiert die Version, die die Vorlage verwendet. Dies ist ein Pflichtfeld. Der Wert2018-05-29
ist die einzige Version, die für die EventBridge Zuordnungsvorlagen unterstützt wird. -
Operation
Die einzige unterstützte Operation ist
PutEvents
. Mit diesem Vorgang können Sie Ihrem Event-Bus benutzerdefinierte Ereignisse hinzufügen. -
Ereignisse
Eine Reihe von Ereignissen, die dem Event-Bus hinzugefügt werden. Dieses Array sollte eine Zuordnung von 1 bis 10 Elementen haben.
Das
Event
-Objekt enthält folgende Felder:-
"source"
: Eine Zeichenfolge, die die Quelle des Ereignisses definiert. -
"detail"
: Ein JSON Objekt, das Sie verwenden können, um Informationen über das Ereignis anzuhängen. Dieses Feld kann eine leere Map sein ({ }
). -
"detailType
: Eine Zeichenfolge, die den Ereignistyp identifiziert. -
"resources"
: Eine JSON Reihe von Zeichenketten, die Ressourcen identifizieren, die an dem Ereignis beteiligt sind. Dieses Feld kann ein leeres Array sein. -
"time"
: Der als Zeichenfolge bereitgestellte Zeitstempel des Ereignisses. Dies sollte dem RFC3339Zeitstempelformat entsprechen.
-
Die folgenden Ausschnitte sind einige Beispiele für gültige Objekte: Event
Beispiel 1
{ "source" : "source1", "detail" : { "key1" : [1,2,3,4], "key2" : "strval" }, "detailType" : "sampleDetailType", "resources" : ["Resouce1", "Resource2"], "time" : "2022-01-10T05:00:10Z" }
Beispiel 2
{ "source" : "source1", "detail" : {}, "detailType" : "sampleDetailType" }
Beispiel 3
{ "source" : "source1", "detail" : { "key1" : 1200 }, "detailType" : "sampleDetailType", "resources" : [] }