Anda dapat menggunakan Apache RocketMQ sebagai sumber event dan mengintegrasikannya dengan Function Compute melalui EventBridge. Pemicu Apache RocketMQ tersebut kemudian dapat memanggil fungsi terkait sehingga Anda dapat memproses pesan yang dipublikasikan ke Apache RocketMQ dengan logika kustom. Topik ini menjelaskan cara membuat pemicu Apache RocketMQ, mengonfigurasi parameter input, serta menulis dan menguji kode di konsol Function Compute.
Informasi latar belakang
Saat Anda membuat pemicu di konsol Function Compute, Function Compute secara otomatis membuat sumber daya aliran acara di EventBridge berdasarkan konfigurasi pemicu.
Setelah pemicu dibuat, Anda dapat melihat informasinya di konsol Function Compute serta melihat sumber daya yang dibuat secara otomatis di konsol EventBridge. Ketika sebuah pesan dipublikasikan ke topik di Apache RocketMQ, fungsi tersebut dipicu. Berdasarkan konfigurasi batching, satu atau beberapa event pesan didorong ke fungsi secara batch.
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 dibuat.
Topik telah dibuat.
Kelompok konsumen telah dibuat.
Anda dapat dengan cepat menerapkan kluster Apache RocketMQ serta mengirim dan menerima pesan dengan merujuk pada dokumen berikut:
Batasan
Kluster Apache RocketMQ yang berfungsi sebagai sumber event harus dapat diakses melalui internet atau dari dalam virtual private cloud (VPC) Alibaba Cloud.
Jika kluster Apache RocketMQ dapat diakses dari dalam VPC, instans terhubung-VPC dan fungsi Function Compute harus berada di wilayah yang sama.
Anda tidak dapat membuat pemicu Apache RocketMQ jika jumlah aliran acara yang dibuat telah mencapai batas maksimum. Untuk informasi lebih lanjut tentang batasan jumlah aliran acara, lihat Batasan.
Langkah 1: Buat pemicu Apache RocketMQ
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 Triggers, lalu klik Create Trigger.
Di panel Buat Pemicu, konfigurasikan parameter, lalu klik OK.
Parameter
Prosedur
Contoh
Trigger Type
Pilih Self-managed Apache RocketMQ.
Self-managed Apache RocketMQ
Name
Masukkan nama kustom untuk pemicu.
apache-rocketmq-trigger
Version Or Alias
Nilai default adalah LATEST. Untuk membuat pemicu untuk versi atau alias yang berbeda, alihkan ke versi atau alias tersebut di pojok kanan atas halaman detail fungsi. Untuk informasi selengkapnya tentang versi dan alias, lihat Kelola versi dan Kelola alias.
LATEST
Endpoint
Masukkan alamat NameServer kluster.
192.168.X.X:9876
Topic
Pilih topik dari instans Apache RocketMQ yang telah dibuat.
testTopic
Group ID
Pilih ID kelompok konsumen dari instans Apache RocketMQ yang telah dibuat.
testGroup
FilterType
Pilih jenis penyaringan pesan. Nilai yang valid:
Tag: Menyaring pesan berdasarkan tag.
SQL: Menyaring pesan berdasarkan pernyataan SQL. Anda dapat mencocokkan properti dan nilai properti pesan.
Tag
Filter
Setelah memilih FilterType, konfigurasikan pernyataan filter yang sesuai.
TagA
Authentication Mode
Pilih mode autentikasi. Mode ACL didukung.
ACL
Username
Jika Anda mengatur Authentication Mode ke ACL, konfigurasikan nama pengguna Apache RocketMQ untuk verifikasi identitas.
admin
Password
Jika Anda mengatur Authentication Mode ke ACL, konfigurasikan kata sandi Apache RocketMQ untuk verifikasi identitas.
******
Consumer Offset
Pilih offset konsumen. Ini menentukan posisi awal EventBridge menarik pesan. Nilai yang valid:
Latest Offset: Mengonsumsi pesan dari offset terbaru.
Earliest Offset: Mengonsumsi pesan dari offset paling awal.
Timestamp: Mengonsumsi pesan dari titik waktu tertentu.
Latest Offset
Network Configuration
Pilih jenis jaringan untuk perutean pesan. Nilai yang valid:
Internet: Mengakses kluster Apache RocketMQ melalui Internet.
VPC: Mengakses kluster Apache RocketMQ melalui virtual private cloud Alibaba Cloud. Anda harus memilih VPC, VSwitch, dan Security Group yang sesuai.
Internet
Invocation Mode
Pilih mode pemanggilan fungsi.
Nilai yang valid:
Synchronous: Ini adalah mode pemanggilan default. Suatu event memicu fungsi. Function Compute menunggu hingga fungsi selesai, lalu mengembalikan hasilnya. Untuk informasi selengkapnya, lihat Pemanggilan sinkron.
Asynchronous: Mode ini cocok untuk fungsi dengan penundaan penjadwalan yang panjang. Setelah suatu event memicu fungsi, Function Compute langsung mengembalikan tanggapan dan memastikan fungsi dieksekusi setidaknya sekali. Namun, hasil eksekusi tidak dikembalikan. Untuk informasi selengkapnya, lihat Pemanggilan asinkron.
Synchronous
Trigger State
Menentukan apakah pemicu diaktifkan segera setelah dibuat. Secara default, opsi ini dipilih, artinya pemicu diaktifkan segera setelah pembuatan.
Aktifkan Pemicu
Untuk informasi tentang konfigurasi lanjutan, seperti konfigurasi dorong, percobaan ulang, dan antrian pesan gagal, lihat Fitur lanjutan pemicu.
Setelah pemicu dibuat, pemicu tersebut muncul di tab Triggers. Untuk memodifikasi atau menghapus pemicu, lihat Kelola pemicu.
Langkah 2: Konfigurasi parameter input fungsi
Sumber event Apache RocketMQ yang dikelola sendiri meneruskan event sebagai parameter input ke fungsi. Anda dapat secara manual meneruskan event ke fungsi untuk mensimulasikan peristiwa pemicu.
Di tab Code 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 Edit Existing Test Event, masukkan nama event dan konten event, lalu klik OK.
Format event adalah sebagai berikut.
[ { "msgId": "7F0000010BDD2A84AEE70DA49B57****", "topic": "testTopic", "systemProperties": { "UNIQ_KEY": "7F0000010BDD2A84AEE70DA49B57****", "CLUSTER": "DefaultCluster", "MIN_OFFSET": "0", "TAGS": "TagA", "MAX_OFFSET": "128" }, "userProperties": {}, "body": "Hello RocketMQ" } ]Tabel berikut menjelaskan parameter dalam event.
Parameter
Tipe
Contoh
Deskripsi
msgId
String
7F0000010BDD2A84AEE70DA49B57****
ID pesan Apache RocketMQ.
topic
String
testTopic
Nama topik.
systemProperties
Map
Properti sistem.
UNIQ_KEY
String
7F0000010BDD2A84AEE70DA49B57****
Kunci unik pesan.
CLUSTER
String
DefaultCluster
Nama kluster Apache RocketMQ.
MIN_OFFSET
Int
0
Offset minimum.
MAX_OFFSET
Int
128
Offset maksimum.
TAGS
String
TagA
Properti filter.
userProperties
Map
None
Properti pengguna.
body
String
Hello RocketMQ
Konten pesan.
Langkah 3: Tulis dan uji kode fungsi
Setelah membuat pemicu, Anda dapat menulis dan menguji kode fungsi untuk memverifikasi kebenarannya. Di lingkungan produksi, pemicu secara otomatis memanggil fungsi setiap kali Apache RocketMQ menerima pesan.
Di halaman detail fungsi, klik tab Code. Di editor kode, tulis kode Anda lalu klik Deploy Code.
Topik ini menggunakan kode Node.js sebagai contoh. Kode contohnya adalah sebagai berikut.
'use strict'; /* Untuk mengaktifkan fitur initializer, implementasikan fungsi initializer 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 alat Serverless Devs untuk mengonfigurasi pemicu. Untuk informasi selengkapnya, lihat Perintah umum Serverless Devs.
Gunakan SDK untuk mengonfigurasi pemicu. Untuk informasi selengkapnya, lihat SDK.
Untuk memodifikasi atau menghapus pemicu, lihat Kelola pemicu.