Setelah ApsaraMQ for RocketMQ diintegrasikan dengan Function Compute sebagai sumber acara menggunakan EventBridge, Anda dapat menggunakan pemicu ApsaraMQ for RocketMQ untuk memicu eksekusi fungsi terkait guna melakukan operasi kustom pada pesan yang diterbitkan ke ApsaraMQ for RocketMQ. Topik ini menjelaskan cara membuat pemicu ApsaraMQ for RocketMQ, mengonfigurasi parameter input dari fungsi terkait, menulis kode fungsi, dan menguji fungsi di konsol Function Compute.
Ikhtisar
Setelah Anda mengirim permintaan untuk membuat pemicu di konsol Function Compute, Function Compute secara otomatis membuat aliran acara di EventBridge berdasarkan konfigurasi pemicu. Untuk informasi lebih lanjut, lihat Ikhtisar.
Setelah pemicu dibuat, Anda dapat melihat informasi tentang pemicu di konsol Function Compute. Anda juga dapat melihat informasi tentang sumber daya yang dibuat di konsol EventBridge. Ketika pesan dimasukkan ke dalam antrean di instance sumber ApsaraMQ for RocketMQ, fungsi terkait di Function Compute dipicu. Selama eksekusi fungsi, acara pesan didorong ke fungsi untuk diproses secara terpisah atau dalam batch sesuai konfigurasi batch Anda. Pemicu ApsaraMQ for RocketMQ cocok untuk skenario pemrosesan data streaming ujung ke ujung.
Catatan penggunaan
Instance ApsaraMQ for RocketMQ yang digunakan sebagai sumber pemicu harus berada di wilayah yang sama dengan fungsi Function Compute.
Jika jumlah aliran acara yang dibuat melebihi batas atas, Anda tidak dapat lagi membuat pemicu ApsaraMQ for RocketMQ.
Untuk informasi tentang batasan sumber daya terkait pemicu di satu wilayah untuk setiap akun Alibaba Cloud, lihat Batasan.
Sebelum Anda mulai
EventBridge
Function Compute
ApsaraMQ for RocketMQ
Langkah 1: Buat pemicu
Setelah membuat instance ApsaraMQ for RocketMQ, masuk ke konsol Function Compute, buka halaman detail fungsi, klik tab Configurations, lalu klik Create Trigger di halaman Pemicu. Setelah pemicu dibuat, klik OK. Gambar berikut menunjukkan detailnya.

Tabel berikut menjelaskan parameter.
Parameter | Deskripsi | Contoh |
Consumer Offset | Tentukan offset dari mana ApsaraMQ for RocketMQ mulai menarik pesan dari EventBridge. Nilai valid:
| Offset Terbaru |
Invocation Method | Tentukan metode pemanggilan fungsi. Atur parameter ke salah satu nilai berikut berdasarkan kebutuhan bisnis Anda:
| Pemanggilan Sinkron |
Untuk informasi tentang konfigurasi lanjutan seperti pengaturan dorongan, kebijakan ulang, dan antrian pesan gagal, lihat Fitur Lanjutan Pemicu.
Langkah 2: (Opsional) Konfigurasikan parameter input
ApsaraMQ for RocketMQ meneruskan sumber acara ke fungsi dalam bentuk event sebagai parameter input. Anda dapat menggunakan kode untuk mengurai dan memproses acara. Anda juga dapat secara manual meneruskan event ke fungsi untuk mensimulasikan acara pemicu guna menguji apakah kode fungsi benar.
Di tab Code halaman detail fungsi, klik ikon
di sebelah Test Function dan pilih Configure Test Parameters dari daftar drop-down.Di panel Configure Test Parameters, klik tab Create New Test Event atau Modify Existing Test Event, masukkan nama acara dan isi acara, lalu klik OK.
Kode contoh dari
event:[ { "id":"94ebc15f-f0db-4bbe-acce-56fb72fb****", "source":"RocketMQ-Function-rocketmq-trigger", "specversion":"1.0", "type":"mq:Topic:SendMessage", "datacontenttype":"application/json; charset=utf-8", "subject":"acs:mq:cn-hangzhou:164901546557****:MQ_INST_164901546557****_BXhFHryi%TopicName", "time":"2021-04-08T06:01:20.766Z", "aliyunaccountid":"164901546557****", "aliyunpublishtime":"2021-10-15T02:05:16.791Z", "aliyunoriginalaccountid":"164901546557****", "aliyuneventbusname":"RocketMQ-Function-rocketmq-trigger", "aliyunregionid":"cn-chengdu", "aliyunpublishaddr":"42.120.XX.XX", "data":{ "topic":"TopicName", "systemProperties":{ "MIN_OFFSET":"0", "TRACE_ON":"true", "MAX_OFFSET":"8", "MSG_REGION":"cn-hangzhou", "KEYS":"systemProperties.KEYS", "CONSUME_START_TIME":1628577790396, "TAGS":"systemProperties.TAGS", "INSTANCE_ID":"MQ_INST_164901546557****_BXhFHryi" }, "userProperties":{ }, "body":"TEST" } }, { "id":"94ebc15f-f0db-4bbe-acce-56fb72fb****", "source":"RocketMQ-Function-rocketmq-trigger", "specversion":"1.0", "type":"mq:Topic:SendMessage", "datacontenttype":"application/json; charset=utf-8", "subject":"acs:mq:cn-hangzhou:164901546557****:MQ_INST_164901546557****_BXhFHryi%TopicName", "time":"2021-04-08T06:01:20.766Z", "aliyunaccountid":"164901546557****", "aliyunpublishtime":"2021-10-15T02:05:16.791Z", "aliyunoriginalaccountid":"164901546557****", "aliyuneventbusname":"RocketMQ-Function-rocketmq-trigger", "aliyunregionid":"cn-chengdu", "aliyunpublishaddr":"42.120.XX.XX", "data":{ "topic":"TopicName", "systemProperties":{ "MIN_OFFSET":"0", "TRACE_ON":"true", "MAX_OFFSET":"8", "MSG_REGION":"cn-hangzhou", "KEYS":"systemProperties.KEYS", "CONSUME_START_TIME":1628577790396, "TAGS":"systemProperties.TAGS", "INSTANCE_ID":"MQ_INST_164901546557****_BXhFHryi" }, "userProperties":{ }, "body":"TEST" } } ]Tabel berikut menjelaskan parameter yang terkandung dalam data. Untuk informasi tentang parameter yang didefinisikan dalam spesifikasi CloudEvents, lihat Ikhtisar.
Parameter
Tipe
Contoh
Deskripsi
topic
String
TopicName
Nama topik.
systemProperties
Map
Properti sistem.
MIN_OFFSET
Int
0
Offset paling awal.
TRACE_ON
Boolean
true
Menunjukkan apakah jejak pesan ada. Nilai valid:
true
false
MAX_OFFSET
Int
8
Offset terbaru.
MSG_REGION
String
cn-hangzhou
Wilayah dari mana pesan dikirim.
KEYS
String
systemProperties.KEYS
Kunci yang digunakan untuk menyaring pesan.
CONSUME_START_TIME
Long
1628577790396
Waktu mulai konsumsi pesan. Unit: milidetik.
UNIQ_KEY
String
AC14C305069E1B28CDFA3181CDA2****
Kunci unik pesan.
TAGS
String
systemProperties.TAGS
Tag yang digunakan untuk menyaring pesan.
INSTANCE_ID
String
MQ_INST_123456789098****_BXhFHryi
ID instance ApsaraMQ for RocketMQ.
userProperties
Map
Tidak ada
Properti pengguna.
body
String
TEST
Isi pesan.
Langkah 3: Tulis kode fungsi dan uji fungsi
Setelah pemicu dibuat, Anda dapat menulis kode fungsi dan menguji fungsi untuk memverifikasi apakah kode tersebut benar. Ketika acara yang dihasilkan oleh ApsaraMQ for RocketMQ dikirimkan ke Function Compute menggunakan EventBridge, pemicu secara otomatis memicu fungsi.
Di tab Code halaman detail fungsi, tulis kode di editor kode dan klik Deploy Code.
Berikut ini adalah contoh kode fungsi dalam Node.js:
'use strict'; /* Untuk mengaktifkan fitur inisialisasi silakan implementasikan fungsi inisialisasi sebagai berikut: exports.initializer = (context, callback) => { console.log('initializing'); callback(null, ''); }; */ exports.handler = (event, context, callback) => { console.log("event: %s", event); // Parse parameter acara dan proses acara. callback(null, 'hasil pengembalian'); }Uji fungsi.
Metode 1: Jika Anda mengonfigurasi
eventuntuk mensimulasikan sumber acara, klik Test Function.Metode 2: Masuk ke konsol ApsaraMQ for RocketMQ, pilih topik yang Anda buat, lalu klik Kirim Pesan. Gambar berikut menunjukkan contohnya.

Setelah eksekusi selesai, lihat hasilnya di Log Real-time.

Informasi tambahan
Untuk memodifikasi atau menghapus pemicu yang ada, lihat Kelola Pemicu.