All Products
Search
Document Center

Function Compute:Pemicu RabbitMQ

Last Updated:Apr 01, 2026

Pemicu ApsaraMQ for RabbitMQ memungkinkan Anda menjalankan fungsi Function Compute setiap kali pesan masuk ke antrian RabbitMQ. Integrasi ini mengarahkan pesan melalui EventBridge, sehingga Anda dapat memprosesnya satu per satu atau dalam batch tanpa perlu mengelola infrastruktur polling.

Cara kerja

Saat Anda membuat pemicu ApsaraMQ for RabbitMQ di Konsol Function Compute, Function Compute secara otomatis membuat aliran event di EventBridge. Ketika sebuah pesan dimasukkan ke instans RabbitMQ sumber, EventBridge mengirimkannya ke fungsi Anda sebagai event berformat CloudEvents. Pesan didorong ke fungsi Anda satu per satu atau dalam batch, tergantung pada konfigurasi batch yang Anda tetapkan.

Anda dapat melihat pemicu tersebut di Konsol Function Compute dan sumber daya aliran event terkait di Konsol EventBridge.

Pemicu ApsaraMQ for RabbitMQ cocok untuk skenario pemrosesan data streaming end-to-end.

Batasan

  • Instans ApsaraMQ for RabbitMQ dan fungsi Function Compute harus berada di Wilayah yang sama.

  • Jika jumlah aliran event di akun Anda mencapai Kuota, Anda tidak dapat membuat pemicu tambahan. Untuk detail kuota, lihat Batasan.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Langkah 1: Buat pemicu

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

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

  3. Konfigurasikan parameter pemicu. Gambar berikut menunjukkan panel konfigurasi.

    image

  4. Klik OK.

Metode pemanggilan

Pilih cara Function Compute memanggil fungsi Anda saat pesan tiba:

MethodMax payloadBehaviorWhen to use
Sync Invocation32 MBMemproses satu event atau batch dalam satu waktu; menunggu fungsi mengembalikan respons sebelum memproses berikutnyaPemrosesan berurutan di mana urutan penting
Async Invocation128 KBMengembalikan respons segera dan melanjutkan ke event atau batch berikutnya; fungsi berjalan di latar belakangSkenario throughput tinggi di mana kecepatan konsumsi lebih penting daripada pemrosesan berurutan

Untuk detail selengkapnya, lihat Synchronous invocation dan Asynchronous invocation.

Untuk pengaturan lanjutan seperti push settings, kebijakan retry, dan dead-letter queues, lihat Advanced features of triggers.

Setelah dibuat, pemicu akan muncul di tab Triggers. Untuk mengubah atau menghapusnya, lihat Trigger management.

Langkah 2: (Opsional) Konfigurasikan parameter pengujian

ApsaraMQ for RabbitMQ meneruskan pesan ke fungsi Anda sebagai array event. Untuk menguji kode fungsi Anda tanpa mengirim pesan sungguhan, simulasi event secara manual:

  1. Di tab Code, 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 event dan konten event di bawah ini, lalu klik OK.

Berikut adalah contoh muatan event yang berisi dua pesan:

[
  {
    "id": "bj694332-4cj1-389e-9d8c-b137h30b****",
    "source": "RabbitMQ-Function-rabbitmq-trigger",
    "specversion": "1.0",
    "type": "amqp:Queue:SendMessage",
    "datacontenttype": "application/json;charset=utf-8",
    "subject": "acs:amqp:cn-hangzhou:164901546557****:/instances/amqp-cn-tl32e756****/vhosts/eb-connect/queues/housekeeping",
    "time": "2021-08-12T06:56:40.709Z",
    "aliyunaccountid": "164901546557****",
    "aliyunpublishtime": "2021-10-15T08:58:55.140Z",
    "aliyunoriginalaccountid": "164901546557****",
    "aliyuneventbusname": "RabbitMQ-Function-rabbitmq-trigger",
    "aliyunregionid": "cn-chengdu",
    "aliyunpublishaddr": "42.120.XX.XX",
    "data": {
      "envelope": {
        "deliveryTag": 98,
        "exchange": "",
        "redeliver": false,
        "routingKey": "housekeeping"
      },
      "body": {
        "Hello": "RabbitMQ"
      },
      "props": {
        "contentEncoding": "UTF-8",
        "messageId": "f7622d51-e198-41de-a072-77c1ead7****"
      }
    }
  },
  {
    "id": "bj694332-4cj1-389e-9d8c-b137h30b****",
    "source": "RabbitMQ-Function-rabbitmq-trigger",
    "specversion": "1.0",
    "type": "amqp:Queue:SendMessage",
    "datacontenttype": "application/json;charset=utf-8",
    "subject": "acs:amqp:cn-hangzhou:164901546557****:/instances/amqp-cn-tl32e756****/vhosts/eb-connect/queues/housekeeping",
    "time": "2021-08-12T06:56:40.709Z",
    "aliyunaccountid": "164901546557****",
    "aliyunpublishtime": "2021-10-15T08:58:55.140Z",
    "aliyunoriginalaccountid": "164901546557****",
    "aliyuneventbusname": "RabbitMQ-Function-rabbitmq-trigger",
    "aliyunregionid": "cn-chengdu",
    "aliyunpublishaddr": "42.120.XX.XX",
    "data": {
      "envelope": {
        "deliveryTag": 98,
        "exchange": "",
        "redeliver": false,
        "routingKey": "housekeeping"
      },
      "body": {
        "Hello": "RabbitMQ"
      },
      "props": {
        "contentEncoding": "UTF-8",
        "messageId": "f7622d51-e198-41de-a072-77c1ead7****"
      }
    }
  }
]

Array luar berisi satu objek untuk setiap pesan dalam batch. Bidang tingkat atas mengikuti spesifikasi CloudEvents. Bidang data membawa konten spesifik RabbitMQ:

Parameter bidang `data`

ParameterTypeExampleDescription
bodyMapIsi message yang berisi konten yang ditentukan pengguna
HelloStringEventBridgeData pengguna di dalam isi message
propsMapAtribut message
contentEncodingStringutf-8Encoding dari isi message
messageIdStringf7622d51-e198-41de-a072-77c1ead7****ID message unik
envelopeMapMetadata envelope AMQP
deliveryTagInt98Tag pengiriman yang ditetapkan oleh broker
exchangeString Nama exchange yang mengirim message
redeliverBooleanfalseMenentukan apakah message dapat dikirim ulang. Nilai yang valid: true atau false
routingKeyStringhousekeepingRouting key yang digunakan untuk mengirimkan message ke queue

Langkah 3: Tulis dan uji kode fungsi

Tulis kode di editor untuk mengurai dan memproses array event yang diterima fungsi Anda. Deploy kode tersebut, lalu uji menggunakan salah satu dari dua metode berikut.

  1. Di tab Code, tulis kode fungsi Anda dan klik Deploy Code. Contoh berikut dalam Node.js mencatat event mentah dan mengembalikan hasil:

    'use strict';
    /*
    Untuk mengaktifkan fitur initializer
    harap implementasikan fungsi inisialisasi seperti di bawah ini:
    exports.initializer = (context, callback) => {
      console.log('initializing');
      callback(null, '');
    };
    */
    exports.handler = (event, context, callback) => {
      console.log("event: %s", event);
      // Urai parameter event dan proses event tersebut.
      callback(null, 'return result');
    }
  2. Uji fungsi menggunakan salah satu metode berikut:

    • Event simulasi: Klik Test Function untuk menjalankan dengan parameter pengujian yang Anda konfigurasi di Langkah 2.

    • Pesan sungguhan: Masuk ke Konsol ApsaraMQ for RabbitMQ, pilih queue Anda, lalu klik Send Message untuk menerbitkan pesan. Pemicu akan aktif secara otomatis.

      image

  3. Setelah eksekusi, periksa hasilnya di Real-time Logs.

    image

Langkah berikutnya