All Products
Search
Document Center

Function Compute:Pemicu RocketMQ

Last Updated:Apr 23, 2026

Gunakan pemicu ApsaraMQ for RocketMQ untuk memanggil fungsi Function Compute setiap kali sebuah message tiba di sebuah topik. Function Compute terintegrasi dengan ApsaraMQ for RocketMQ melalui EventBridge, yang menangani perutean dan pengiriman event. Topik ini akan memandu Anda dalam membuat pemicu, memahami muatan event, menulis kode fungsi, serta menguji konfigurasi tersebut.

Cara kerja

Saat Anda membuat pemicu ApsaraMQ for RocketMQ di Konsol Function Compute, Function Compute secara otomatis membuat aliran event di EventBridge berdasarkan konfigurasi pemicu Anda. Setelah pemicu aktif, message yang tiba di topik sumber akan dikirimkan ke fungsi Anda — secara individual atau dalam batch, tergantung pada konfigurasi batch Anda.

Pemicu ApsaraMQ for RocketMQ dirancang untuk skenario pemrosesan data streaming end-to-end.

Batasan

  • Instans ApsaraMQ for RocketMQ harus berada di Wilayah yang sama dengan fungsi Function Compute.

  • Jika jumlah aliran event di akun Anda mencapai batas maksimum, Anda tidak dapat membuat pemicu ApsaraMQ for RocketMQ tambahan. Untuk informasi kuota, lihat Batasan.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Langkah 1: Buat pemicu

  1. Login ke Konsol Function Compute dan buka halaman detail fungsi.

  2. Klik tab Configurations, lalu klik Create Trigger di halaman Triggers.

  3. Konfigurasikan parameter pemicu seperti yang dijelaskan dalam tabel berikut, lalu klik OK.

image
ParameterDeskripsiContoh
Consumer offsetOffset tempat ApsaraMQ for RocketMQ mulai menarik message. Nilai yang valid: Latest Offset (mulai dari message terbaru), Earliest Offset (mulai dari message tertua yang tersedia), Timestamp (mulai dari titik waktu tertentu).Latest Offset
Invocation methodCara fungsi dipanggil saat event tiba. Sync Invocation: Function Compute menjalankan fungsi dan menunggu respons sebelum memproses event atau batch berikutnya. Muatan maksimum: 32 MB. Lihat Synchronous invocation. Async Invocation: Function Compute langsung melanjutkan ke event berikutnya tanpa menunggu fungsi selesai. Muatan maksimum: 128 KB. Lihat Asynchronous invocation.Sync Invocation

Untuk pengaturan lanjutan seperti konfigurasi push, kebijakan retry, dan dead-letter queues, lihat Fitur lanjutan pemicu.

Langkah 2: (Opsional) Konfigurasikan parameter uji

ApsaraMQ for RocketMQ mengirimkan message ke fungsi Anda sebagai array event. Sebelum mengirim message sungguhan, simulasi event pemicu untuk memverifikasi kode fungsi Anda.

  1. Di tab Code pada halaman detail fungsi, klik ikon image.png di samping Test Function dan pilih Configure Test Parameters.

  2. Di panel Configure Test Parameters, klik Create New Test Event atau Modify Existing Test Event, masukkan nama dan konten event, lalu klik OK.

Berikut adalah contoh muatan event yang berisi dua message:

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

Setiap elemen dalam array merupakan message berformat CloudEvents. Bidang tingkat atas (id, source, specversion, dan seterusnya) mengikuti spesifikasi CloudEvents. Untuk detailnya, lihat Ikhtisar. Objek data berisi konten message RocketMQ:

BidangTipeContohDeskripsi
topicStringTopicNameNama topik.
systemPropertiesMapProperti message tingkat sistem RocketMQ.
systemProperties.MIN_OFFSETInt0Offset paling awal dalam antrian.
systemProperties.TRACE_ONBooleantrueApakah jejak message tersedia.
systemProperties.MAX_OFFSETInt8Offset terbaru dalam antrian.
systemProperties.MSG_REGIONStringcn-hangzhouWilayah tempat message dikirim.
systemProperties.KEYSStringsystemProperties.KEYSKunci yang digunakan untuk memfilter message.
systemProperties.CONSUME_START_TIMELong1628577790396Waktu mulai konsumsi message, dalam milidetik.
systemProperties.UNIQ_KEYStringAC14C305069E1B28CDFA3181CDA2****Kunci unik dari message.
systemProperties.TAGSStringsystemProperties.TAGSTag yang digunakan untuk memfilter message.
systemProperties.INSTANCE_IDStringMQ_INST_123456789098****_BXhFHryiID instans ApsaraMQ for RocketMQ.
userPropertiesMapProperti pengguna.
bodyStringTESTIsi message.

Langkah 3: Tulis dan uji fungsi Anda

Setelah pemicu dibuat, tulis kode fungsi Anda dan uji.

Tulis kode fungsi

Di tab Code pada halaman detail fungsi, tulis kode penanganan Anda dan klik Deploy Code.

Contoh Node.js berikut menunjukkan cara menangani event:

'use strict';

exports.handler = (event, context, callback) => {
  console.log("event: %s", event);
  // Parse the event parameters and process the event.
  callback(null, 'return result');
}

Uji fungsi

Dua metode tersedia:

Metode 1: Simulasikan dengan parameter uji

Jika Anda telah mengonfigurasi event uji di Langkah 2, klik Test Function di tab Code.

Metode 2: Mengirim pesan sungguhan

Login ke Konsol ApsaraMQ for RocketMQ, pilih topik yang telah Anda buat, lalu klik Send Message.

image

Setelah fungsi dijalankan, lihat output di Real-time Logs.

image

Langkah selanjutnya

  • Untuk mengubah atau menghapus pemicu ini, lihat Manage triggers.

  • Untuk melihat aliran event yang dibuat oleh pemicu ini, login ke Konsol EventBridge. Lihat Ikhtisar.