全部产品
Search
文档中心

Function Compute:Pemicu ApsaraMQ for RocketMQ

更新时间:Jul 02, 2025

Setelah sumber acara ApsaraMQ for RocketMQ diintegrasikan dengan Function Compute menggunakan EventBridge, pemicu ApsaraMQ for RocketMQ dapat memicu fungsi terkait. Fungsi-fungsi ini dapat digunakan untuk melakukan operasi kustom pada pesan-pesan yang diterbitkan ke ApsaraMQ for RocketMQ. Topik ini menjelaskan cara membuat pemicu ApsaraMQ for RocketMQ, mengonfigurasi parameter input fungsi, serta menulis dan menguji kode di konsol Function Compute.

Ikhtisar

Setelah Anda membuat pemicu di konsol Function Compute, Function Compute membuat sumber daya EventBridge berdasarkan konfigurasi pemicu. Function Compute menyediakan mode acara dan mode aliran acara untuk mendorong pesan. Item berikut menggambarkan sumber daya yang dapat Anda buat di setiap model:
Setelah pemicu dibuat, Anda dapat melihat informasi tentang pemicu tersebut di konsol Function Compute. Anda juga dapat melihat informasi tentang sumber daya yang telah dibuat di konsol EventBridge. Ketika pesan dikirim ke instance ApsaraMQ for RocketMQ yang digunakan sebagai sumber pemicu, eksekusi fungsi dipicu di Function Compute. Model dorongan yang berbeda mendukung parameter yang berbeda. Untuk informasi lebih lanjut, lihat Langkah 2: Konfigurasikan parameter input fungsi.
  • Mode acara: Setiap pesan dilewatkan ke fungsi sebagai parameter acara. Acara tersebut mengikuti spesifikasi CloudEvents. Untuk informasi tentang hubungan antara konten pesan dan CloudEvents, lihat Langkah 2: Konfigurasikan parameter input fungsi.
  • Mode aliran acara: Satu atau lebih pesan didorong ke Function Compute untuk pemrosesan batch berdasarkan konfigurasi batch Anda. Model ini cocok untuk skenario di mana data streaming ujung ke ujung diproses.

Peringatan

  • Instance ApsaraMQ for RocketMQ yang digunakan sebagai sumber pemicu harus berada di wilayah yang sama dengan fungsi di Function Compute.
  • Ketika jumlah bus acara kustom yang dibuat dan jumlah aturan acara yang dibuat mencapai batas atas, Anda tidak dapat lagi membuat pemicu ApsaraMQ for RocketMQ dari model acara.
  • Ketika jumlah aliran acara yang dibuat mencapai batas atas, Anda tidak dapat membuat pemicu ApsaraMQ for RocketMQ dari mode aliran acara.

Untuk informasi tentang batasan jumlah sumber daya yang dapat dibuat menggunakan akun Alibaba Cloud di setiap wilayah, lihat Batasan.

Sebelum Anda Mulai

Langkah 1: Buat pemicu

  1. Masuk ke konsol Function Compute. Di bilah navigasi kiri, klik Services & Functions.

  2. Di bilah navigasi atas, pilih wilayah. Pada halaman Services, klik layanan yang diinginkan.

  3. Pada halaman Functions, klik fungsi yang ingin dikelola.
  4. Pada halaman detail fungsi, klik tab Triggers, pilih versi atau alias dari daftar drop-down Version or Alias, lalu klik Create Trigger.
  5. Di panel Buat Pemicu, tentukan parameter terkait. Setelah Anda menentukan parameter, klik OK.
    Tabel berikut menggambarkan parameter dasar.
    ParameterDeskripsiContoh
    Trigger TypePilih ApsaraMQ for RocketMQ dari daftar drop-down.ApsaraMQ for RocketMQ
    NameMasukkan nama pemicu.rocketmq-trigger
    Version or AliasNilai default adalah LATEST. Jika Anda ingin membuat pemicu untuk versi atau alias lainnya, beralihlah ke versi atau alias tertentu di sudut kanan atas halaman detail fungsi. Untuk informasi lebih lanjut tentang versi dan alias layanan, lihat Kelola versi dan Kelola alias.LATEST
    ApsaraMQ for RocketMQ InstancePilih instance ApsaraMQ for RocketMQ dari daftar drop-down.MQ_INST_164901546557****_BX7****
    TopicPilih topik dari instance ApsaraMQ for RocketMQ dari daftar drop-down.topic1
    TagTentukan tag untuk penyaringan pesan.

    Eksekusi fungsi hanya dipicu ketika pesan yang berisi tag penyaringan yang ditentukan diterima.

    tag
    Group IDPilih ID grup dari instance ApsaraMQ for RocketMQ yang telah dibuat.GID_group1
    Consumer OffsetPilih offset konsumen dari pesan. Offset konsumen menentukan titik di mana ApsaraMQ for RocketMQ mulai menarik pesan dari bus acara. Nilai valid:
    • Latest Offset: mengonsumsi pesan dari offset terbaru.
    • Earliest Offset: mengonsumsi pesan dari offset paling awal.
    • Timestamp: mengonsumsi pesan dari timestamp tertentu.
    Offset Terbaru
    Invocation MethodPilih metode untuk memanggil fungsi.
    Nilai valid:
    • Sync Invocation: Mode ini cocok untuk invokasi berurutan. Ketika satu acara atau sekelompok acara memicu fungsi, Function Compute menjalankan fungsi dan menunggu respons sebelum memproses acara atau kelompok acara berikutnya. Batas maksimum payload untuk permintaan invokasi sinkron adalah 32 MB. Untuk informasi lebih lanjut, lihat Invokasi Sinkron.
    • Async Invocation: Mode ini memungkinkan Anda untuk dengan cepat mengonsumsi acara. Ketika satu acara atau sekelompok acara memicu fungsi, Function Compute segera mengembalikan respons dan melanjutkan untuk memproses acara atau kelompok acara berikutnya selama proses ini, fungsi dijalankan dalam mode asinkron. Batas maksimum payload untuk permintaan invokasi asinkron adalah 128 KB. Untuk informasi lebih lanjut, lihat Ikhtisar.
    Invokasi Sinkron
    Message Push ModeMode aplikasi dasar yang digunakan untuk mendorong data pesan ke Function Compute.
    Nilai valid:
    • Event Stream Mode: Satu atau lebih pesan didorong ke Function Compute untuk pemrosesan batch berdasarkan konfigurasi batch Anda. Model ini cocok untuk skenario di mana data streaming ujung ke ujung diproses.
    • Event Mode: Setiap pesan dilewatkan ke fungsi sebagai parameter acara. Acara tersebut mengikuti spesifikasi CloudEvents. Untuk informasi tentang hubungan antara konten pesan dan CloudEvents, lihat Langkah 2: Konfigurasikan parameter input fungsi.
    Mode Acara
    Trigger StateTentukan apakah akan mengaktifkan pemicu setelah dibuat. Secara default, Enable Trigger dipilih dan pemicu diaktifkan setelah dibuat.N/A

    Untuk informasi lebih lanjut tentang konfigurasi lanjutan seperti dorongan pesan, pengulangan, dan konfigurasi antrian mati suri, lihat Fitur lanjutan pemicu.

    Setelah pemicu dibuat, pemicu tersebut ditampilkan di tab Triggers. Untuk memodifikasi atau menghapus pemicu yang ada, lihat Kelola pemicu.

Langkah 2: Konfigurasikan parameter input fungsi

Sumber acara ApsaraMQ for RocketMQ dilewatkan ke fungsi dalam bentuk event yang bertindak sebagai parameter input. Anda dapat secara manual melewati event ke fungsi untuk mensimulasikan acara pemicu dan menguji apakah kode fungsi benar.

  1. Pada halaman detail fungsi, klik tab Code dan klik ikon xialatubiao. Dari daftar drop-down yang muncul, pilih Configure Test Parameters.
  2. Di panel Configure Test Parameters, klik tab Create New Test Event atau Modify Existing Test Event, dan tentukan Event Name dan isi acara. Setelah Anda menentukan parameter, klik OK.
    Kode contoh event dalam mode acara:
    {
        "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"
        }
    }
    Kode contoh event dalam mode aliran acara:
    [
        {
        "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 menggambarkan parameter 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. Satuan: milidetik.

    UNIQ_KEY

    String

    AC14C305069E1B28CDFA3181CDA2****

    Kunci unik dari 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 Anda membuat pemicu, Anda dapat menulis kode fungsi dan menguji fungsi untuk memverifikasi bahwa kode tersebut benar. Ketika acara ApsaraMQ for RocketMQ dikirimkan ke Function Compute menggunakan EventBridge, pemicu tersebut memicu eksekusi fungsi.

  1. Pada halaman detail fungsi, klik tab Code, edit kode fungsi di editor kode, lalu klik Deploy.
    Dalam topik ini, Node.js digunakan sebagai kode fungsi.
    'use strict';
    /*
    Untuk mengaktifkan fitur inisialisasi
    silakan implementasikan fungsi inisialisasi seperti berikut:
    exports.initializer = (context, callback) => {
      console.log('initializing');
      callback(null, '');
    };
    */
    exports.handler = (event, context, callback) => {
      console.log("event: %s", event);
      // Parsing parameter acara dan memproses acara.
      callback(null, 'hasil kembali');
    }
  2. Klik tab Code dan klik Test Function.
    Setelah fungsi dieksekusi, Anda dapat melihat hasilnya di tab Kode.

Referensi

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