Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
AWS AppSync JavaScript referensi fungsi resolver untuk sumber data EventBridge
Permintaan dan respons fungsi AWS AppSync resolver yang digunakan dengan sumber EventBridge data memungkinkan Anda mengirim acara khusus ke bus Amazon EventBridge .
Permintaan
Handler permintaan memungkinkan Anda mengirim beberapa acara khusus ke bus EventBridge acara:
export function request(ctx) { return { "operation" : "PutEvents", "events" : [{}] } }
EventBridge PutEvents
Permintaan memiliki definisi tipe berikut:
type PutEventsRequest = { operation: 'PutEvents' events: { source: string detail: { [key: string]: any } detailType: string resources?: string[] time?: string // RFC3339 Timestamp format }[] }
Respons
Jika PutEvents
operasi berhasil, respons dari EventBridge termasuk dalamctx.result
:
export function response(ctx) { if(ctx.error) util.error(ctx.error.message, ctx.error.type, ctx.result) else return ctx.result }
Kesalahan yang terjadi saat melakukan PutEvents
operasi seperti InternalExceptions
atau Timeouts
akan muncul dictx.error
. Untuk daftar EventBridge kesalahan umum, lihat referensi kesalahan EventBridge umum.
result
Akan memiliki definisi tipe berikut:
type PutEventsResult = { Entries: { ErrorCode: string ErrorMessage: string EventId: string }[] FailedEntryCount: number }
-
Entri
Hasil acara yang dicerna, baik yang berhasil maupun yang tidak berhasil. Jika konsumsi berhasil, entri memiliki
EventID
di dalamnya. Jika tidak, Anda dapat menggunakanErrorCode
danErrorMessage
untuk mengidentifikasi masalah dengan entri.Untuk setiap catatan, indeks elemen respons sama dengan indeks dalam array permintaan.
-
FailedEntryCount
Jumlah entri yang gagal. Nilai ini direpresentasikan sebagai bilangan bulat.
Untuk informasi lebih lanjut tentang tanggapanPutEvents
, lihat PutEvents.
Contoh respon sampel 1
Contoh berikut adalah PutEvents
operasi dengan dua peristiwa sukses:
{ "Entries" : [ { "EventId": "11710aed-b79e-4468-a20b-bb3c0c3b4860" }, { "EventId": "d804d26a-88db-4b66-9eaf-9a11c708ae82" } ], "FailedEntryCount" : 0 }
Contoh respon sampel 2
Contoh berikut adalah PutEvents
operasi dengan tiga peristiwa, dua keberhasilan dan satu gagal:
{ "Entries" : [ { "EventId": "11710aed-b79e-4468-a20b-bb3c0c3b4860" }, { "EventId": "d804d26a-88db-4b66-9eaf-9a11c708ae82" }, { "ErrorCode" : "SampleErrorCode", "ErrorMessage" : "Sample Error Message" } ], "FailedEntryCount" : 1 }
PutEvents
bidang
PutEvents
berisi bidang template pemetaan berikut:
-
Versi
Umum untuk semua template pemetaan permintaan,
version
bidang mendefinisikan versi yang digunakan template. Bidang ini wajib diisi. Nilai2018-05-29
adalah satu-satunya versi yang didukung untuk template EventBridge pemetaan. -
Operasi
Satu-satunya operasi yang didukung adalah
PutEvents
. Operasi ini memungkinkan Anda untuk menambahkan acara khusus ke bus acara Anda. -
Peristiwa
Berbagai acara yang akan ditambahkan ke bus acara. Array ini harus memiliki alokasi 1 - 10 item.
Event
Objek memiliki bidang berikut:-
"source"
: String yang mendefinisikan sumber acara. -
"detail"
: JSON Objek yang dapat Anda gunakan untuk melampirkan informasi tentang acara tersebut. Bidang ini bisa berupa peta kosong ({ }
). -
"detailType
: Sebuah string yang mengidentifikasi jenis acara. -
"resources"
: Sebuah JSON array string yang mengidentifikasi sumber daya yang terlibat dalam acara tersebut. Bidang ini bisa berupa array kosong. -
"time"
: Stempel waktu acara disediakan sebagai string. Ini harus mengikuti format RFC3339stempel waktu.
-
Cuplikan di bawah ini adalah beberapa contoh objek yang validEvent
:
Contoh 1
{ "source" : "source1", "detail" : { "key1" : [1,2,3,4], "key2" : "strval" }, "detailType" : "sampleDetailType", "resources" : ["Resouce1", "Resource2"], "time" : "2022-01-10T05:00:10Z" }
Contoh 2
{ "source" : "source1", "detail" : {}, "detailType" : "sampleDetailType" }
Contoh 3
{ "source" : "source1", "detail" : { "key1" : 1200 }, "detailType" : "sampleDetailType", "resources" : [] }