全部产品
Search
文档中心

Function Compute:Pemicu ApsaraMQ for RabbitMQ

更新时间:Jul 06, 2025

Setelah ApsaraMQ for RabbitMQ diintegrasikan dengan Function Compute sebagai sumber acara menggunakan EventBridge, Anda dapat menggunakan pemicu ApsaraMQ for RabbitMQ untuk memicu eksekusi fungsi terkait guna melakukan operasi kustom pada pesan yang diterbitkan ke ApsaraMQ for RabbitMQ. Topik ini menjelaskan cara membuat pemicu antrian ApsaraMQ for RabbitMQ, 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 telah dibuat di konsol EventBridge. Ketika pesan dimasukkan ke dalam antrian di instance sumber ApsaraMQ for RabbitMQ, fungsi terkait di Function Compute dipicu. Selama eksekusi fungsi, peristiwa pesan didorong ke fungsi untuk diproses secara terpisah atau dalam batch berdasarkan konfigurasi batch Anda. Pemicu ApsaraMQ for RabbitMQ cocok untuk skenario di mana data streaming ujung-ke-ujung diproses.

Batasan

  • Instance ApsaraMQ for RabbitMQ yang digunakan sebagai sumber pemicu harus berada di wilayah yang sama dengan fungsi Function Compute.

  • Jika jumlah aliran acara yang dibuat mencapai batas maksimum, Anda tidak dapat lagi membuat pemicu ApsaraMQ for RabbitMQ.

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 antrian ApsaraMQ for RabbitMQ, masuk ke konsol Function Compute, buka halaman detail fungsi, klik tab Configurations, lalu klik Create Trigger di halaman Pemicu untuk membuat pemicu. Setelah pemicu dibuat, klik OK. Gambar berikut menunjukkan detailnya.

image

Tabel berikut menjelaskan parameter.

Invocation Method

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

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

Untuk informasi tentang konfigurasi lanjutan seperti pengaturan push, kebijakan ulang, dan antrian pesan gagal, lihat Fitur lanjutan pemicu.

Setelah pemicu dibuat, pemicu tersebut ditampilkan di tab Triggers. Untuk memodifikasi atau menghapus pemicu, lihat Manajemen Pemicu.

Langkah 2: (Opsional) Konfigurasikan parameter input

ApsaraMQ for RabbitMQ meneruskan sumber acara ke fungsi dalam bentuk event sebagai parameter input. Anda dapat menggunakan kode untuk mengurai dan memproses acara. Anda dapat secara manual meneruskan event ke fungsi untuk mensimulasikan peristiwa 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 peristiwa dan konten peristiwa, lalu klik OK.

    Kode contoh event:

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

    Tabel berikut menjelaskan parameter yang terkandung dalam data. Untuk informasi tentang parameter yang didefinisikan dalam spesifikasi CloudEvents, lihat Ikhtisar.

    Parameter

    Tipe

    Contoh

    Deskripsi

    body

    Map

    Badan pesan.

    Hello

    String

    EventBridge

    Data pengguna.

    props

    Map

    Atribut pesan.

    contentEncoding

    String

    utf-8

    Format pengkodean badan pesan.

    messageId

    String

    f7622d51-e198-41de-a072-77c1ead7****

    ID pesan. ID setiap pesan bersifat unik.

    envelope

    Map

    Informasi tentang amplop pesan.

    deliveryTag

    Int

    98

    Tag pesan.

    exchange

    String

    None

    Nama pertukaran yang mengirim pesan.

    redeliver

    Boolean

    false

    Menentukan apakah pesan dapat dikirim ulang. Nilai valid:

    • true

    • false

    routingKey

    String

    housekeeping

    Aturan routing 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 peristiwa yang dihasilkan oleh ApsaraMQ for RabbitMQ 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.

    Kode contoh berikut memberikan 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 balik');
    }
  2. Uji fungsi.

    Metode 1: Jika Anda mengonfigurasi event untuk mensimulasikan sumber acara, klik Test Function.

    Metode 2: Masuk ke konsol ApsaraMQ for RabbitMQ, pilih topik yang Anda buat, lalu klik Kirim Pesan. Gambar berikut menunjukkan contohnya.

    image

  3. Setelah eksekusi selesai, lihat hasilnya di Log Waktu Nyata.

    image

Informasi lebih lanjut

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