Simple Message Queue (formerly MNS) topik dapat berfungsi sebagai sumber event dan terintegrasi dengan EventBridge dan Function Compute. Pemicu topik Simple Message Queue (formerly MNS) secara otomatis menjalankan fungsi terkait ketika pesan baru dikirim ke topik Simple Message Queue (formerly MNS) Anda, sehingga memungkinkan penerapan pemrosesan kustom yang mudah untuk pesan masuk.
Informasi latar belakang
Message Queue for MNS adalah layanan messaging terdistribusi yang efisien, andal, aman, mudah digunakan, serta dapat diskalakan secara elastis. Layanan ini membantu pengembang aplikasi mengirimkan data dan notifikasi antar komponen terdistribusi serta membangun sistem yang loosely coupled. Di dalam Message Queue for MNS, topik merupakan tujuan tempat pesan dipublikasikan. Publisher dapat memanggil API PublishMessage untuk mempublikasikan pesan ke sebuah topik, dan subscriber topik tersebut akan menerima pesan tersebut. Untuk detail API, lihat PublishMessage.
Mengonfigurasi pemicu topik Simple Message Queue (formerly MNS) mendaftarkan fungsi Anda sebagai subscriber ke topik Simple Message Queue (formerly MNS). Ketika publisher mengirimkan pesan ke topik Simple Message Queue (formerly MNS), konten pesan tersebut dikirimkan ke fungsi untuk memicu eksekusinya. Konten pesan diteruskan sebagai parameter event ke penanganan fungsi. Untuk informasi lebih lanjut, lihat Informasi dasar.
Integrasi antara Message Queue for MNS dan Function Compute memberikan manfaat berikut:
Lakukan pemrosesan lanjutan pada pesan sebelum mengirimkannya melalui email atau SMS.
Anda tidak perlu meng-host layanan untuk endpoint HTTP.
Terapkan pemrosesan kustom yang kaya, seperti mengirim pesan ke Slack atau menyimpan pesan tertentu secara persisten.
Prasyarat
Function Compute
Simple Message Queue (formerly MNS)
Catatan penggunaan
Topik di Message Queue for MNS dan fungsi di Function Compute harus berada di wilayah yang sama.
Hindari loop panggilan.
Saat menulis kode fungsi, pastikan tidak terdapat logika berikut: Topik A memicu Fungsi B, dan Fungsi B mempublikasikan pesan baru ke Topik A. Hal ini dapat menyebabkan loop panggilan tak terbatas.
Langkah 1: Buat pemicu topik Message Queue for MNS
Login ke Konsol Function Compute. Di panel navigasi kiri, pilih .
Di bilah navigasi atas, pilih wilayah. Pada halaman Functions, klik fungsi target.
Di halaman detail fungsi, pilih tab Trigger, lalu klik Create Trigger.
Di panel Create Trigger, konfigurasikan parameter, lalu klik OK.
Parameter
Tindakan
Contoh
Trigger Type
Pilih Message Queue for MNS Topic Trigger - Asynchronous Invocation.
Simple Message Queue (formerly MNS) topic trigger
Name
Masukkan nama pemicu kustom.
trigger-mns
Version or Alias
Nilai default adalah LATEST. Jika ingin membuat pemicu untuk versi atau alias lain, alihkan terlebih dahulu ke versi atau alias tersebut di pojok kanan atas halaman detail fungsi. Untuk ikhtisar versi dan alias, lihat Manage versions dan Manage aliases.
LATEST
MNS region
Pilih wilayah tempat topik berada. Topik Simple Message Queue (formerly MNS) dan fungsi Function Compute harus berada di wilayah yang sama.
China (Chengdu)
Topic
Pilih topik dari daftar.
Mytopic
Filter tag
Masukkan tag filter pesan.
Fungsi hanya dipicu ketika menerima pesan yang mengandung tag filter yang ditentukan.
tag
Event format
Pilih format event. Nilai yang valid:
STREAM
JSON
JSON
Retry policy
Pilih kebijakan retry. Nilai yang valid:
Backoff Retry
Exponential decay retry
Untuk panduan memilih kebijakan retry, lihat NotifyStrategy.
Backoff Retry
Role Name
Pilih AliyunMNSNotificationRole.
CatatanJika ini pertama kalinya Anda membuat pemicu jenis ini, setelah mengklik OK, pilih Authorize Now di kotak dialog yang muncul.
AliyunMNSNotificationRole
Langkah 2: Konfigurasi parameter input fungsi
Di tab Code halaman detail fungsi, klik ikon
di samping Test Function dan pilih Configure Test Parameters dari daftar drop-down.Di panel Configure Test Parameters, pilih Create New Test Event atau Modify Existing Test Event. Masukkan nama event dan konten event, lalu klik OK.
Pesan yang dipublikasikan ke topik Simple Message Queue (formerly MNS) diproses berdasarkan notifyContentFormat. Pesan yang telah diproses menjadi parameter
eventuntuk penanganan fungsi. Untuk informasi lebih lanjut, lihat NotifyContentFormat.Jika Anda mengatur Event Format ke STREAM saat membuat pemicu:
Jika pesan tidak mencakup atribut pesan (MessageAttributes), format event adalah sebagai berikut.
CatatanJika pesan tidak mencakup atribut pesan (MessageAttributes), konten event adalah isi pesan mentah dalam bentuk string.
# Isi pesan. 'hello topic'Jika pesan mencakup atribut pesan (MessageAttributes), format event adalah sebagai berikut.
CatatanKonten event mencakup pasangan kunci-nilai terkait MessageAttributes. Untuk informasi lebih lanjut, lihat PublishMessage.
{ "body": "hello topic", "attrs": { "Extend": "{\\"key\\":\\"value\\"}" } }
Jika Anda mengatur Event Format ke JSON saat membuat pemicu:
Jika pesan tidak mencakup atribut pesan (MessageAttributes), format event adalah sebagai berikut.
{ "TopicOwner": "118620210433****", "Message": "hello topic", "Subscriber": "118620210433****", "PublishTime": 1550216480040, "SubscriptionName": "test-fc-subscribe", "MessageMD5": "BA4BA9B48AC81F0F9C66F6C909C3****", "TopicName": "Mytopic", "MessageId": "2F5B3C082B923D4EAC694B76D928****" }Jika pesan mencakup atribut pesan (MessageAttributes), format event adalah sebagai berikut.
CatatanKonten event mencakup pasangan kunci-nilai terkait MessageAttributes. Untuk informasi lebih lanjut, lihat PublishMessage.
{ "key": "value", "TopicOwner": "118620210433****", "Message": "hello topic", "Subscriber": "118620210433****", "PublishTime": 1550216302888, "SubscriptionName": "test-fc-subscribe", "MessageMD5": "BA4BA9B48AC81F0F9C66F6C909C3****", "TopicName": "Mytopic", "MessageId": "2F5B3C281B283D4EAC694B742528****" }
Tabel berikut menjelaskan bidang-bidang dalam parameter
event.Parameter
Tipe
Contoh
Deskripsi
key
String
value
Pasangan kunci-nilai dari atribut pesan.
TopicOwner
String
118620210433****
ID akun pemilik topik.
Message
String
hello topic
Isi pesan.
Subscriber
String
118620210433****
ID akun pengguna.
PublishTime
Int
1550216302888
Waktu saat pesan dipublikasikan.
SubscriptionName
String
test-fc-subscribe
Nama langganan.
MessageMD5
String
BA4BA9B48AC81F0F9C66F6C909C3****
Hash MD5 dari isi pesan.
TopicName
String
Mytopic
Nama topik.
MessageId
String
2F5B3C281B283D4EAC694B742528****
ID pesan.
Langkah 3: Tulis dan uji kode fungsi
Setelah membuat pemicu topik Simple Message Queue (formerly MNS), tulis dan uji kode fungsi Anda untuk memverifikasi bahwa fungsinya bekerja sesuai harapan.
Di tab Code halaman detail fungsi, tulis kode di editor, lalu klik Deploy.
Bagian ini menggunakan kode Python sebagai contoh. Anda dapat menggunakan kode contoh berikut sebagai templat untuk pemicu topik Simple Message Queue (formerly MNS).
import json import logging def handler(event, context): logger = logging.getLogger() logger.info("mns_topic trigger event = {}".format(event)) # Contohnya, catat event ke Tablestore. return "OK"Klik Test Function.
Setelah eksekusi selesai, Anda dapat melihat hasil eksekusi di atas tab Code.
Informasi selengkapnya
Selain melalui Konsol Function Compute, Anda juga dapat mengonfigurasi pemicu dengan cara berikut:
Gunakan tool Serverless Devs untuk mengonfigurasi pemicu. Untuk informasi lebih lanjut, lihat Perintah umum Serverless Devs.
Gunakan SDK untuk mengonfigurasi pemicu. Untuk informasi lebih lanjut, lihat SDK.
Untuk memodifikasi atau menghapus pemicu, lihat Kelola pemicu.