AWS AppSync JavaScript referensi fungsi resolver untuk sumber data EventBridge - AWS AppSync

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 PutEventsPermintaan 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.

resultAkan 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 menggunakan ErrorCode dan ErrorMessage 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 }

PutEventsbidang

PutEventsberisi bidang template pemetaan berikut:

  • Versi

    Umum untuk semua template pemetaan permintaan, version bidang mendefinisikan versi yang digunakan template. Bidang ini wajib diisi. Nilai 2018-05-29 adalah satu-satunya versi yang didukung untuk template EventBridge pemetaan.

  • Operasi

    Satu-satunya operasi yang didukung adalahPutEvents. 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.

    EventObjek 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" : [] }