全部产品
Search
文档中心

Function Compute:Pemicu RabbitMQ

更新时间:Jul 06, 2025

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

Ikhtisar

Setelah Anda memutuskan untuk membuat pemicu di konsol Function Compute, Function Compute akan membuat sumber daya EventBridge berdasarkan konfigurasi pemicu. Function Compute menyediakan mode peristiwa dan mode aliran peristiwa untuk mendorong pesan. Berikut adalah sumber daya yang dapat dibuat dalam setiap mode:
Setelah pemicu dibuat, Anda dapat melihat informasi pemicu di konsol Function Compute. Informasi tentang sumber daya yang telah dibuat juga dapat dilihat di konsol EventBridge. Saat pesan dikirim ke instance ApsaraMQ for RabbitMQ yang digunakan sebagai sumber pemicu, eksekusi fungsi dipicu. Model dorongan yang berbeda mendukung parameter yang berbeda. Untuk informasi lebih lanjut, lihat Langkah 2: Konfigurasikan parameter input fungsi.
  • Mode peristiwa: Pesan tunggal dilewatkan ke fungsi sebagai parameter peristiwa. Peristiwa tersebut mengikuti spesifikasi CloudEvents. Untuk informasi tentang hubungan antara konten pesan dan CloudEvents, lihat Langkah 2: Konfigurasikan parameter input fungsi.
  • Mode aliran peristiwa: 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.

Catatan penggunaan

  • Instance ApsaraMQ for RabbitMQ yang menjadi sumber pemicu harus berada di wilayah yang sama dengan fungsi di Function Compute.
  • Jika jumlah bus peristiwa kustom yang dibuat dan jumlah aturan peristiwa yang dibuat mencapai batas atas, Anda tidak dapat membuat pemicu Antrian Pesan untuk RabbitMQ dalam mode peristiwa.
  • Jika jumlah aliran peristiwa yang dibuat mencapai batas atas, Anda tidak dapat membuat pemicu Antrian Pesan untuk RabbitMQ dalam mode aliran peristiwa.

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

Sebelum memulai

Langkah 1: Buat pemicu

  1. Masuk ke konsol Function Compute. Di panel 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 Anda kelola.
  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 menentukan parameter, klik OK.
    Tabel berikut menjelaskan parameter dasar.
    ParameterDeskripsiContoh
    Trigger TypePilih Message Queue for RabbitMQ dari daftar drop-down.Antrian Pesan untuk RabbitMQ
    NameMasukkan nama pemicu kustom.rabbitmq-trigger
    Version or AliasNilai default adalah LATEST. Jika Anda ingin membuat pemicu untuk versi atau alias lain, beralihlah ke versi atau alias tertentu di pojok kanan atas halaman detail fungsi. Untuk informasi lebih lanjut tentang versi dan alias layanan, lihat Kelola versi dan Kelola alias.LATEST
    RabbitMQ InstancePilih instance ApsaraMQ for RabbitMQ.amqp-cn-i7m2l6m2****
    VhostPilih vhost dari instance ApsaraMQ for RabbitMQ dari daftar drop-down.myhost-1
    QueuePilih antrian dari instance ApsaraMQ for RabbitMQ dari daftar drop-down.myqueue-1
    Invocation MethodPilih mode pemanggilan fungsi.
    Nilai valid:
    • Sync Invocation: Mode ini cocok untuk pemanggilan berurutan. Saat satu peristiwa atau sekelompok peristiwa memicu fungsi, Function Compute menjalankan fungsi dan menunggu respons sebelum memproses peristiwa atau kelompok peristiwa berikutnya. Batas maksimum payload untuk permintaan pemanggilan sinkron adalah 32 MB. Untuk informasi lebih lanjut, lihat Pemanggilan sinkron.
    • Async Invocation: Mode ini memungkinkan Anda untuk dengan cepat mengonsumsi peristiwa. Saat satu peristiwa atau sekelompok peristiwa memicu fungsi, Function Compute segera mengembalikan respons dan melanjutkan untuk memproses peristiwa atau kelompok peristiwa berikutnya. Selama proses ini, fungsi dijalankan dalam mode asinkron. Batas maksimum payload untuk permintaan pemanggilan asinkron adalah 128 KB. Untuk informasi lebih lanjut, lihat Ikhtisar.
    Pemanggilan Sinkron
    Message Push ModeMode aplikasi dasar yang digunakan untuk mendorong data pesan ke Function Compute.
    Nilai valid:
    • Event Mode: Pesan tunggal dilewatkan ke fungsi sebagai parameter peristiwa. Peristiwa tersebut mengikuti spesifikasi CloudEvents. Untuk informasi tentang hubungan antara konten pesan dan CloudEvents, lihat Parameter.
    • 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.
    Mode Peristiwa
    Trigger StateMenentukan apakah akan mengaktifkan pemicu segera setelah dibuat. Secara default, Enable Trigger dipilih dan pemicu diaktifkan setelah dibuat.Tidak tersedia

    Untuk informasi lebih lanjut tentang konfigurasi lanjutan seperti dorongan pesan, percobaan ulang, dan konfigurasi surat mati, 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 peristiwa ApsaraMQ for RabbitMQ dilewatkan ke fungsi dalam bentuk event, yang bertindak sebagai parameter input. Anda juga dapat secara manual melewatkan event ke fungsi untuk memicu fungsi 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 menentukan parameter, klik OK.
    Kode contoh event dalam mode peristiwa:
      {
        "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****"
            }
        }
    }
    Kode contoh event dalam mode aliran peristiwa:
    [
          {
        "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 dalam data. Untuk informasi tentang parameter yang didefinisikan dalam spesifikasi CloudEvents, lihat Ikhtisar.

    Parameter

    Tipe

    Contoh

    Deskripsi

    body

    Map

    Tubuh pesan.

    Hello

    String

    EventBridge

    Data pengguna.

    props

    Map

    Atribut pesan.

    contentEncoding

    String

    utf-8

    Format pengkodean tubuh pesan.

    messageId

    String

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

    ID pesan. Setiap ID pesan bersifat unik.

    envelope

    Map

    Informasi tentang amplop pesan.

    deliveryTag

    Int

    98

    Tag pesan.

    exchange

    String

    Tidak ada

    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 dan uji fungsi

Setelah Anda membuat pemicu, Anda dapat menulis kode fungsi dan menguji fungsi untuk memverifikasi bahwa kode tersebut benar. Saat peristiwa ApsaraMQ for RabbitMQ dikirimkan ke Function Compute menggunakan EventBridge, pemicu memicu eksekusi fungsi.

  1. Pada halaman detail fungsi, klik tab Code, edit kode fungsi di editor kode, lalu klik Deploy.
    Topik ini menggunakan contoh kode fungsi 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);
      // Parsing parameter peristiwa dan memproses peristiwa.
      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.