全部产品
Search
文档中心

Function Compute:Pemicu ApsaraMQ for RocketMQ

更新时间:Jul 02, 2025

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

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.

image

Tabel berikut menjelaskan parameter.

Parameter

Deskripsi

Contoh

Consumer Offset

Tentukan offset dari mana ApsaraMQ for RocketMQ mulai menarik pesan dari EventBridge. Nilai valid:

  • Latest Offset: mengonsumsi pesan dari offset terbaru.

  • Earliest Offset: mengonsumsi pesan dari offset paling awal.

  • Timestamp: menarik pesan dari timestamp tertentu.

Offset Terbaru

Invocation Method

Tentukan metode pemanggilan fungsi.

Atur parameter ke salah satu nilai berikut berdasarkan kebutuhan bisnis Anda:

  • Sync Invocation: Metode ini cocok untuk pemanggilan berurutan. Ketika suatu acara atau sekelompok acara memicu fungsi, Function Compute menjalankan fungsi dan menunggu respons sebelum fungsi memproses acara atau kelompok acara berikutnya. Payload maksimum untuk permintaan pemanggilan sinkron adalah 32 MB. Untuk informasi lebih lanjut, lihat Pemanggilan Sinkron.

  • Async Invocation: Metode ini memungkinkan Anda untuk dengan cepat mengonsumsi acara. Ketika suatu acara atau sekelompok acara memicu fungsi, Function Compute segera mengembalikan respons dan terus memproses acara atau kelompok acara berikutnya. Selama proses ini, fungsi dieksekusi dalam mode asinkron. Payload maksimum untuk permintaan pemanggilan asinkron adalah 128 KB. Untuk informasi lebih lanjut, lihat Pemanggilan Asinkron.

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.

  1. Di tab Code halaman detail fungsi, klik ikon image.png di sebelah Test Function dan pilih Configure Test Parameters dari daftar drop-down.

  2. 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.

  1. 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');
    }
  2. Uji fungsi.

    Metode 1: Jika Anda mengonfigurasi event untuk 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.

    image

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

    image

Informasi tambahan

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