Pemicu antrian Simple Message Queue (formerly MNS) memungkinkan Anda menjalankan fungsi Function Compute secara otomatis setiap kali sebuah message tiba di antrian. Pemicu ini didukung oleh EventBridge: saat Anda membuat pemicu di Konsol Function Compute, Function Compute akan membuat aliran event yang diperlukan di EventBridge atas nama Anda. Untuk detail mengenai aliran event, lihat Ikhtisar.
Saat pemicu aktif, setiap message yang dimasukkan ke antrian sumber akan menyebabkan fungsi terkait dieksekusi. Message dikirimkan satu per satu atau dalam batch, tergantung pada konfigurasi batch Anda. Pola ini cocok untuk pemrosesan data streaming end-to-end.
Batasan
Antrian Simple Message Queue (formerly MNS) dan fungsi Function Compute harus berada di Wilayah yang sama.
Jika akun Alibaba Cloud Anda mencapai batas aliran event EventBridge, Anda tidak dapat membuat pemicu antrian Simple Message Queue (formerly MNS) tambahan. Untuk informasi batas terkini, lihat Batasan.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Mengaktifkan EventBridge dan memberikan izin: Aktifkan EventBridge dan berikan izin kepada RAM user
Memiliki fungsi event Function Compute: Buat fungsi event
Mengaktifkan Simple Message Queue (formerly MNS) dan memberikan akses RAM user: Aktifkan SMQ dan otorisasi RAM user untuk mengakses SMQ
Membuat antrian di Simple Message Queue (formerly MNS): Buat antrian
Langkah 1: Buat pemicu
Masuk ke Konsol Function Compute dan klik fungsi yang ingin Anda gunakan.
Di halaman detail fungsi, klik tab Configurations, lalu buka Triggers dan klik Create Trigger.
Isi pengaturan pemicu. Bidang utama adalah Invocation Method: Untuk detailnya, lihat Synchronous invocation dan Asynchronous invocation.
Invocation method Behavior Max payload When to use Sync Invocation Function Compute menunggu fungsi mengembalikan respons sebelum mengirimkan event atau batch berikutnya 32 MB Pemrosesan berurutan atau berbasis urutan penting Async Invocation Function Compute mengirimkan event dan langsung melanjutkan ke event berikutnya; fungsi berjalan di latar belakang 128 KB Skenario throughput tinggi di mana Anda ingin mengonsumsi event dengan cepat Klik OK.

Untuk pengaturan lanjutan seperti push settings, kebijakan retry, dan dead-letter queues, lihat Fitur lanjutan pemicu.
Setelah pemicu dibuat, pemicu tersebut akan muncul di tab Triggers. Untuk mengubah atau menghapusnya, lihat Kelola pemicu.
Langkah 2: (Opsional) Konfigurasikan parameter pengujian
Fungsi menerima event Simple Message Queue (formerly MNS) sebagai parameter event — berupa array objek berformat CloudEvents. Untuk menguji kode fungsi tanpa mengirim message sungguhan, simulasi event secara manual.
Di tab Code, klik ikon
di samping Test Function dan pilih Configure Test Parameters.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.
Contoh muatan event:
[
{
"id": "c2g71017-6f65-fhcf-a814-a396fc8d****",
"source": "MNS-Function-mnstrigger",
"specversion": "1.0",
"type": "mns:Queue:SendMessage",
"datacontenttype": "application/json; charset=utf-8",
"subject": "acs:mns:cn-hangzhou:164901546557****:queues/zeus",
"time": "2021-04-08T06:28:17.093Z",
"aliyunaccountid": "164901546557****",
"aliyunpublishtime": "2021-10-15T07:06:34.028Z",
"aliyunoriginalaccountid": "164901546557****",
"aliyuneventbusname": "MNS-Function-mnstrigger",
"aliyunregionid": "cn-chengdu",
"aliyunpublishaddr": "42.120.XX.XX",
"data": {
"requestId": "606EA3074344430D4C81****",
"messageId": "C6DB60D1574661357FA227277445****",
"messageBody": "TEST"
}
},
{
"id": "d2g71017-6f65-fhcf-a814-a396fc8d****",
"source": "MNS-Function-mnstrigger",
"specversion": "1.0",
"type": "mns:Queue:SendMessage",
"datacontenttype": "application/json; charset=utf-8",
"subject": "acs:mns:cn-hangzhou:164901546557****:queues/zeus",
"time": "2021-04-08T06:28:17.093Z",
"aliyunaccountid": "164901546557****",
"aliyunpublishtime": "2021-10-15T07:06:34.028Z",
"aliyunoriginalaccountid": "164901546557****",
"aliyuneventbusname": "MNS-Function-mnstrigger",
"aliyunregionid": "cn-chengdu",
"aliyunpublishaddr": "42.120.XX.XX",
"data": {
"requestId": "606EA3074344430D4C81****",
"messageId": "C6DB60D1574661357FA227277445****",
"messageBody": "TEST"
}
}
]Referensi bidang event
Setiap elemen dalam array mengikuti spesifikasi CloudEvents.
Bidang envelope CloudEvents
| Field | Type | Example | Description |
|---|---|---|---|
id | String | c2g71017-6f65-fhcf-a814-a396fc8d**** | ID event unik |
source | String | MNS-Function-mnstrigger | Identifier sumber event (nama event bus) |
type | String | mns:Queue:SendMessage | Jenis event |
subject | String | acs:mns:cn-hangzhou:...:queues/zeus | ARN dari antrian sumber |
time | String | 2021-04-08T06:28:17.093Z | Waktu message dimasukkan ke antrian (ISO 8601) |
specversion | String | 1.0 | Versi spesifikasi CloudEvents |
datacontenttype | String | application/json; charset=utf-8 | Jenis konten dari bidang data |
aliyunregionid | String | cn-chengdu | Wilayah tempat antrian berada |
aliyunaccountid | String | 164901546557**** | ID akun Alibaba Cloud |
aliyunpublishtime | String | 2021-10-15T07:06:34.028Z | Waktu EventBridge menerbitkan event |
Bidang `data`
| Field | Type | Example | Description |
|---|---|---|---|
requestId | String | 606EA3074344430D4C81**** | ID unik dari permintaan pengiriman message |
messageId | String | C6DB60D1574661357FA227277445**** | ID unik dari message |
messageBody | String | TEST | Konten isi message |
Langkah 3: Tulis dan uji fungsi
Setelah pemicu dibuat, tulis kode fungsi Anda, deploy, lalu verifikasi bahwa pemicu berfungsi secara end-to-end.
Tulis dan deploy kode fungsi
Di tab Code, tulis penanganan Anda dan klik Deploy Code.
Contoh berikut dalam Node.js menunjukkan cara menulis kode fungsi:
'use strict';
/*
Untuk mengaktifkan fitur initializer,
implementasikan fungsi initializer seperti di bawah ini:
exports.initializer = (context, callback) => {
console.log('initializing');
callback(null, '');
};
*/
exports.handler = (event, context, callback) => {
console.log("event: %s", event);
// Parse dan proses event.
callback(null, 'return result');
}Uji fungsi
Gunakan salah satu metode berikut:
Event simulasi: Jika Anda telah mengonfigurasi event pengujian di Langkah 2, klik Test Function di tab Code.
Message sungguhan: Masuk ke Konsol Simple Message Queue (formerly MNS), pilih antrian sumber, lalu klik Send Message.

Setelah fungsi dieksekusi, lihat output di Real-time Logs.

Langkah selanjutnya
Ubah atau hapus pemicu: Kelola pemicu
Konfigurasikan kebijakan retry dan dead-letter queues: Fitur lanjutan pemicu