Saat Anda mengintegrasikan instans Apache RocketMQ yang dikelola sendiri dengan Function Compute melalui EventBridge, Anda dapat menggunakan pemicu untuk memanggil fungsi guna memproses pesan yang dipublikasikan ke Apache RocketMQ dengan kode kustom. Topik ini menjelaskan cara membuat pemicu untuk instans Apache RocketMQ yang dikelola sendiri, mengonfigurasi event pengujian, serta menulis dan menguji kode fungsi di Konsol Function Compute.
Informasi latar belakang
Saat Anda membuat pemicu di Konsol Function Compute, Function Compute secara otomatis membuat event stream yang sesuai di EventBridge berdasarkan konfigurasi pemicu Anda.
Setelah pemicu dibuat, Anda dapat melihat detailnya di Konsol Function Compute dan sumber daya yang dibuat secara otomatis di Konsol EventBridge. Saat sebuah pesan masuk ke antrian dalam instans Apache RocketMQ Anda, pemicu akan memanggil fungsi Anda. Berdasarkan konfigurasi batching Anda, pemicu mendorong satu atau beberapa event pesan ke fungsi dalam satu batch untuk diproses.
Prasyarat
EventBridge
Function Compute
Apache RocketMQ
Apache RocketMQ 5.0: Quick Start.
Apache RocketMQ 4.x: Quick Start.
Kluster Apache RocketMQ yang dikelola sendiri telah dideploy.
Topik telah dibuat.
Kelompok konsumen telah dibuat.
Anda dapat menggunakan dokumen berikut untuk segera men-deploy kluster Apache RocketMQ dan mulai mengirim serta menerima pesan.
Batasan
Instans Apache RocketMQ yang berperan sebagai sumber event harus dapat diakses melalui Internet publik atau dari VPC Alibaba Cloud.
Jika instans Apache RocketMQ diakses dari VPC, VPC tersebut harus berada di wilayah yang sama dengan fungsi Anda.
Anda tidak dapat membuat lebih banyak pemicu Apache RocketMQ setelah jumlah event stream mencapai batas. Untuk informasi lebih lanjut mengenai batasan event stream, lihat Batasan.
Langkah 1: Membuat pemicu Apache RocketMQ yang dikelola sendiri
Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, pilih .
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik fungsi yang dituju.
Di halaman detail fungsi, klik tab Trigger, lalu klik Create Trigger.
Di panel Create Trigger, konfigurasikan parameter, lalu klik OK.
Parameter
Actions
Example
Trigger Type
Pilih Self-built Apache RocketMQ.
Self-built Apache RocketMQ
Name
Masukkan nama kustom untuk pemicu tersebut.
apache-rocketmq-trigger
Version or Alias
Nilai default adalah LATEST. Untuk membuat pemicu untuk versi atau alias tertentu, Anda harus terlebih dahulu beralih ke versi atau alias tersebut di halaman detail fungsi. Untuk informasi selengkapnya, lihat Manage versions dan Manage aliases.
LATEST
Endpoint
Masukkan alamat NameServer kluster Apache RocketMQ Anda.
192.168.X.X:9876
Topic
Pilih topik dalam instans Apache RocketMQ Anda.
testTopic
Group ID
Pilih ID kelompok konsumen dalam instans Apache RocketMQ Anda.
testGroup
Filter type
Pilih metode penyaringan pesan. Nilai yang valid:
Tag: Menyaring pesan berdasarkan tag.
SQL: Menyaring pesan menggunakan ekspresi SQL. Hal ini memungkinkan Anda mencocokkan properti dan nilai pesan.
Tag
Filter
Setelah Anda memilih Filter type, tentukan ekspresi filter yang sesuai.
TagA
Authentication Mode
Pilih mode otentikasi. Hanya ACL yang didukung.
ACL
Username
Jika Anda mengatur Authentication Mode ke ACL, masukkan username untuk otentikasi.
admin
Password
Jika Anda mengatur Authentication Mode ke ACL, masukkan password untuk otentikasi.
******
Consumer Offset
Pilih titik awal untuk konsumsi pesan. EventBridge akan menarik pesan mulai dari offset ini. Nilai yang valid:
Latest Offset: Mulai mengonsumsi dari offset terbaru.
Earliest Offset: Mulai mengonsumsi dari offset paling awal.
Timestamp: Mulai mengonsumsi dari titik waktu tertentu.
Latest offset
Networking
Pilih jenis jaringan untuk perutean pesan. Nilai yang valid:
Internet: Akses kluster Apache RocketMQ melalui internet publik.
VPC: Akses kluster Apache RocketMQ melalui VPC Alibaba Cloud. Anda harus memilih VPC, vSwitch, dan Security Group.
Public network
Invocation Method
Pilih metode pemanggilan.
Nilai yang valid:
Sync Invocation: Ini adalah metode default. Sebuah event memicu fungsi. Function Compute menunggu hingga pemanggilan selesai, lalu mengembalikan hasil eksekusi. Untuk informasi selengkapnya, lihat Synchronous invocations.
Async Invocation: Metode ini cocok untuk fungsi berdurasi panjang. Setelah sebuah event memicu fungsi, Function Compute langsung mengembalikan respons. Metode ini menjamin fungsi dieksekusi setidaknya sekali, tetapi tidak mengembalikan hasil eksekusi. Untuk informasi selengkapnya, lihat Asynchronous invocation overview.
Synchronous invocation
Trigger State
Tentukan apakah pemicu diaktifkan segera setelah dibuat. Opsi ini diaktifkan secara default.
Enable trigger
Untuk informasi tentang pengaturan lanjutan, seperti konfigurasi push, kebijakan retry, dan dead-letter queue, lihat Advanced features of triggers.
Setelah pemicu dibuat, pemicu tersebut akan muncul di tab Triggers. Untuk mengubah atau menghapus pemicu, lihat Manage triggers.
Langkah 2: Mengonfigurasi event pengujian
Sumber event Apache RocketMQ yang dikelola sendiri meneruskan event ke fungsi sebagai parameter input. Anda dapat secara manual meneruskan event ke fungsi untuk mensimulasikan pemicuan event.
Di tab Code pada halaman detail fungsi, klik ikon
di samping Test Function dan pilih Configure Test Parameters dari daftar drop-down.Di panel Configure Test Parameters, pilih Create New Test Event atau Modify Existing Test Event. Masukkan nama event, berikan konten event, lalu klik OK.
event memiliki format berikut.
[ { "msgId": "7F0000010BDD2A84AEE70DA49B57****", "topic": "testTopic", "systemProperties": { "UNIQ_KEY": "7F0000010BDD2A84AEE70DA49B57****", "CLUSTER": "DefaultCluster", "MIN_OFFSET": "0", "TAGS": "TagA", "MAX_OFFSET": "128" }, "userProperties": {}, "body": "Hello RocketMQ" } ]Parameter pada bidang event dijelaskan dalam tabel berikut.
Parameter
Tipe
Contoh
Deskripsi
msgIdString
7F0000010BDD2A84AEE70DA49B57****
ID pesan dari Apache RocketMQ.
topicString
testTopic
Nama topik.
systemPropertiesMap
Properti sistem.
UNIQ_KEYString
7F0000010BDD2A84AEE70DA49B57****
Kunci unik dari pesan.
CLUSTERString
DefaultCluster
Nama kluster Apache RocketMQ.
MIN_OFFSETInteger
0
Offset minimum.
MAX_OFFSETInteger
128
Offset maksimum.
TAGSString
TagA
Tag filter.
userPropertiesMap
None
Properti yang ditentukan pengguna.
bodyString
Hello RocketMQ
Isi pesan.
Langkah 3: Menulis dan menguji kode fungsi
Setelah Anda membuat pemicu, Anda dapat menulis dan menguji kode fungsi Anda. Dalam skenario dunia nyata, pemicu secara otomatis memanggil fungsi saat Apache RocketMQ menerima pesan.
Di halaman detail fungsi, klik tab Code. Tulis kode Anda di editor, lalu klik Deploy.
Topik ini menggunakan Node.js sebagai contoh. Berikut adalah contoh kode.
'use strict'; /* Untuk mengaktifkan fitur initializer, implementasikan fungsi inisialisasi sebagai berikut: exports.initializer = (context, callback) => { console.log('initializing'); callback(null, ''); }; */ exports.handler = (event, context, callback) => { console.log("event: %s", event); // Parsing parameter event dan proses event. callback(null, 'return result'); }Klik Test Function.
Informasi lebih lanjut
Selain melalui Konsol Function Compute, Anda juga dapat mengonfigurasi pemicu dengan cara berikut:
Gunakan tool Serverless Devs untuk mengonfigurasi pemicu. Untuk informasi selengkapnya, lihat Common commands of Serverless Devs.
Gunakan SDK untuk mengonfigurasi pemicu. Untuk informasi selengkapnya, lihat SDKs.
Untuk mengubah atau menghapus pemicu, lihat Manage triggers.