Setelah Anda mengintegrasikan Apache RocketMQ sebagai sumber event dengan EventBridge dan Function Compute, pemicu Apache RocketMQ dapat menjalankan fungsi terkait untuk memproses pesan yang dipublikasikan ke Apache RocketMQ. Topik ini menjelaskan cara membuat pemicu Apache RocketMQ, mengonfigurasi parameter input, serta menulis dan menguji kode di konsol Function Compute.
Informasi latar belakang
Setelah Anda mengirim permintaan untuk membuat pemicu di konsol Function Compute, Function Compute secara otomatis membuat resource event stream di EventBridge berdasarkan konfigurasi pemicu tersebut.
Setelah pemicu dibuat, Anda dapat melihat informasi pemicu di konsol Function Compute dan informasi resource yang dibuat secara otomatis di konsol EventBridge. Saat sebuah pesan dimasukkan ke dalam antrian Apache RocketMQ, fungsi tersebut akan dipicu. Berdasarkan konfigurasi batch Anda, satu atau beberapa event pesan akan didorong ke fungsi dalam satu batch untuk diproses.
Prasyarat
EventBridge
Function Compute
Apache RocketMQ
Apache RocketMQ 5.0: , Quick Start (International).
Apache RocketMQ 4.x: Panduan Cepat Mulai.
Anda telah membuat kluster Apache RocketMQ yang dikelola sendiri.
Buat topik
Buat Consumer Group
Gunakan dokumen berikut untuk segera men-deploy kluster Apache RocketMQ dan mengirim serta menerima pesan.
Batasan
Kluster Apache RocketMQ yang berfungsi sebagai sumber event harus dapat diakses melalui jaringan publik atau dalam VPC Alibaba Cloud.
Jika kluster Apache RocketMQ dapat diakses dalam VPC Alibaba Cloud, instans terhubung-VPC dan fungsi Function Compute harus berada di wilayah yang sama.
Jika jumlah event stream melebihi batas, Anda tidak dapat membuat pemicu Apache RocketMQ tambahan. Untuk informasi lebih lanjut mengenai batasan event stream, lihat Batasan.
Langkah 1: Buat pemicu Apache RocketMQ
Masuk ke konsol Function Compute. Di panel navigasi sebelah kiri, klik Services & Functions.
Di bilah navigasi atas, pilih wilayah. Pada halaman Services, klik layanan yang diinginkan.
Pada halaman Functions, klik nama fungsi yang diinginkan.
Di halaman detail fungsi, klik tab Triggers. Pilih versi atau alias tempat Anda ingin membuat pemicu dari daftar drop-down Version or Alias, lalu klik Create Trigger.
Di panel Create Trigger, masukkan informasi yang diperlukan lalu klik OK.
Item Konfigurasi
Tindakan
Contoh
Trigger Type
Pilih Self-managed Apache RocketMQ.
Self-managed Apache RocketMQ
Name
Masukkan nama pemicu kustom.
apache-rocketmq-trigger
Version or Alias
Nilai default adalah LATEST. Untuk membuat pemicu untuk versi atau alias lain, alihkan ke versi atau alias tersebut di pojok kanan atas halaman detail fungsi. Untuk informasi selengkapnya tentang versi dan alias, lihat Manage versions dan Manage aliases.
LATEST
access point
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 menggunakan pernyataan SQL yang dapat mencocokkan properti pesan beserta nilainya.
Tag
Filter
Setelah memilih FilterType, Anda harus mengonfigurasi pernyataan filter sesuai jenis filter yang dipilih.
TagA
Authentication Mode
Pilih mode autentikasi. Hanya mode ACL yang didukung.
ACL
Username
Jika Anda mengatur Authentication Mode ke ACL, Anda harus mengonfigurasi username instans Apache RocketMQ untuk verifikasi identitas.
admin
Password
Jika Anda mengatur Authentication Mode ke ACL, Anda harus mengonfigurasi password instans Apache RocketMQ untuk verifikasi identitas.
******
Consumer Offset
Offset konsumen untuk sebuah pesan menentukan posisi di event bus tempat Apache RocketMQ mulai mengambil pesan. Bagian berikut menjelaskan nilai-nilai yang valid.
Latest Offset: Konsumsi dimulai dari offset terbaru.
Earliest Offset: Konsumsi dimulai dari offset paling awal.
Specified Timestamp: Konsumsi dimulai dari timestamp tertentu.
Latest Offset
Network Configuration
Pilih jenis jaringan untuk routing pesan. Nilai yang valid:
Public Network: Mengakses kluster Apache RocketMQ melalui jaringan publik.
VPC: Mengakses kluster Apache RocketMQ melalui VPC Alibaba Cloud. Anda harus memilih VPC, vSwitch, dan Security Group yang sesuai.
Public Network
Invocation Mode
Pilih mode pemanggilan fungsi.
Nilai yang valid:
Synchronous Call: Mode pemanggilan default. Event memicu fungsi. Function Compute mengembalikan hasil eksekusi setelah fungsi dijalankan. Untuk informasi selengkapnya, lihat Synchronous calls.
Asynchronous Invocation: Cocok untuk fungsi dengan latensi penjadwalan panjang. Event memicu fungsi. Function Compute langsung mengembalikan respons dan menjamin bahwa fungsi dieksekusi setidaknya sekali. Hasil eksekusi spesifik tidak dikembalikan. Untuk informasi selengkapnya, lihat Asynchronous invocations.
Synchronous Call
Trigger Status
Menentukan apakah pemicu diaktifkan segera setelah dibuat. Secara default, Enable Trigger dipilih, dan pemicu langsung diaktifkan setelah pembuatan.
Enable Trigger
Untuk informasi selengkapnya mengenai item konfigurasi lanjutan seperti konfigurasi push, 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: 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 halaman detail fungsi, klik tab Code lalu klik ikon
. Dari daftar drop-down yang muncul, pilih Configure Test Parameters. Di panel Configure Test Parameters, klik tab Create New Test Event atau Edit Existing Test Event. Masukkan Event Name dan konten event. Lalu, klik OK.
Event tersebut 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" } ]Tabel berikut menjelaskan parameter dalam field event.
Parameter
Tipe
Contoh
Deskripsi
msgId
String
7F0000010BDD2A84AEE70DA49B57****
ID pesan di 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 tertinggi.
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, tulis dan uji kode fungsi untuk memverifikasi kebenarannya. Dalam skenario nyata, pemicu secara otomatis menjalankan fungsi saat Apache RocketMQ menerima pesan.
Di halaman detail fungsi, klik tab Code. Tulis kode di editor kode lalu klik Deploy Code.
Topik ini menggunakan kode Node.js sebagai contoh. Kode contohnya sebagai berikut.
'use strict'; /* Untuk mengaktifkan fitur initializer, harap implementasikan fungsi initializer seperti di bawah ini: exports.initializer = (context, callback) => { console.log('initializing'); callback(null, ''); }; */ exports.handler = (event, context, callback) => { console.log("event: %s", event); // Uraikan parameter event dan proses event tersebut. callback(null, 'return result'); }- Klik tab Code lalu klik Test Function.Setelah fungsi dieksekusi, Anda dapat melihat hasilnya di tab Code.
Informasi tambahan
Selain melalui konsol Function Compute, Anda dapat mengonfigurasi pemicu dengan metode berikut:
Gunakan Serverless Devs untuk mengonfigurasi pemicu. Untuk informasi selengkapnya, lihat Create a trigger.
Gunakan SDK untuk mengonfigurasi pemicu. Untuk informasi selengkapnya, lihat SDKs.
Untuk mengubah atau menghapus pemicu yang sudah ada, lihat Manage triggers.