All Products
Search
Document Center

Function Compute:Pemicu topik Simple Message Queue (formerly MNS)

Last Updated:Apr 01, 2026

Ketika publisher mengirimkan pesan ke topik MNS, Function Compute secara otomatis memanggil fungsi dengan pesan tersebut sebagai muatan event—tanpa memerlukan titik akhir HTTP. Gunakan integrasi ini untuk melakukan pra-pemrosesan pesan sebelum pengiriman, menyalurkan ke layanan eksternal, atau menyimpan pesan tertentu ke penyimpanan data.

Cara kerja

Mengonfigurasi pemicu topik MNS mendaftarkan fungsi Anda sebagai subscriber ke topik tersebut. Ketika publisher memanggil operasi PublishMessage pada topik, pesan tersebut langsung diteruskan ke penanganan fungsi Anda sebagai parameter event. Untuk latar belakang model pemicu, lihat Dasar-dasar.

image

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

Catatan penggunaan

Peringatan

Hindari loop panggilan. Jika fungsi Anda mempublikasikan pesan baru kembali ke topik yang sama yang memicunya, fungsi tersebut akan dipanggil berulang tanpa henti. Rancang logika fungsi Anda untuk mencegah loop ini.

  • Topik MNS dan fungsi Function Compute harus berada di wilayah yang sama.

Langkah 1: Buat pemicu topik MNS

  1. Masuk ke Konsol Function Compute. Di panel navigasi sebelah kiri, klik Services & Functions.

  2. Di bilah navigasi atas, pilih wilayah. Pada halaman Services, temukan layanan target dan klik Functions di kolom Actions.

  3. Di halaman Functions, klik fungsi yang ingin Anda ubah.

  4. Di halaman detail fungsi, klik tab Triggers, pilih versi atau alias dari daftar drop-down Version or Alias, lalu klik Create Trigger.

  5. Di panel Create Trigger, konfigurasikan parameter berikut dan klik OK.

ParameterDeskripsiContoh
Trigger typePilih Simple Message Queue (formerly MNS) Triggered by Topic.Simple Message Queue (formerly MNS) Triggered by Topic
NameMasukkan nama pemicu.trigger-mns
Version or aliasDefault-nya adalah LATEST. Untuk menargetkan versi atau alias lain, pilih dari pojok kanan atas halaman detail fungsi. Untuk detailnya, lihat Manage versions dan Manage aliases.LATEST
MNS regionPilih wilayah tempat topik berada. Topik harus berada di wilayah yang sama dengan fungsi.China (Chengdu)
TopicPilih topik dari daftar.Mytopic
Filter tagTentukan tag untuk penyaringan pesan. Fungsi hanya dipanggil jika pesan masuk berisi tag ini.tag
Event formatPilih STREAM atau JSON. Lihat Referensi format event di bawah untuk mengetahui perbedaannya.JSON
Retry policyPilih Backoff Retry atau Exponential Decay Retry. Untuk panduan, lihat NotifyStrategy.Backoff Retry
Role namePilih AliyunMNSNotificationRole. Jika ini adalah pemicu pertama jenis ini, klik Authorize Now di kotak dialog yang muncul.AliyunMNSNotificationRole

Setelah pemicu dibuat, pemicu tersebut akan muncul di tab Triggers. Untuk mengubah atau menghapus pemicu, lihat Manage triggers.

Langkah 2: Pahami format event

Event yang diterima fungsi Anda bergantung pada Event format yang Anda pilih saat membuat pemicu dan apakah pesan mencakup atribut. Untuk informasi lebih lanjut, lihat NotifyContentFormat.

Referensi format event

Format STREAM

Tanpa atribut pesan, event berupa string teks biasa:

'hello topic'

Dengan atribut pesan, event berupa objek JSON:

{
    "body": "hello topic",
    "attrs": {
        "Extend": "{\"key\":\"value\"}"
    }
}

Format JSON

Tanpa atribut pesan:

{
    "TopicOwner": "118620210433****",
    "Message": "hello topic",
    "Subscriber": "118620210433****",
    "PublishTime": 1550216480040,
    "SubscriptionName": "test-fc-subscribe",
    "MessageMD5": "BA4BA9B48AC81F0F9C66F6C909C3****",
    "TopicName": "Mytopic",
    "MessageId": "2F5B3C082B923D4EAC694B76D928****"
}

Dengan atribut pesan, pasangan kunci-nilai tambahan dari PublishMessage muncul di tingkat teratas:

{
    "key": "value",
    "TopicOwner": "118620210433****",
    "Message": "hello topic",
    "Subscriber": "118620210433****",
    "PublishTime": 1550216302888,
    "SubscriptionName": "test-fc-subscribe",
    "MessageMD5": "BA4BA9B48AC81F0F9C66F6C909C3****",
    "TopicName": "Mytopic",
    "MessageId": "2F5B3C281B283D4EAC694B742528****"
}

Referensi field event JSON

FieldTipeContohDeskripsi
keyStringvaluePasangan kunci-nilai dari atribut pesan
TopicOwnerString118620210433****ID akun yang berlangganan ke topik
MessageStringhello topicKonten pesan
SubscriberString118620210433****ID akun subscriber
PublishTimeInt1550216302888Waktu pesan dipublikasikan
SubscriptionNameStringtest-fc-subscribeNama langganan
MessageMD5StringBA4BA9B48AC81F0F9C66F6C909C3****Hash MD5 dari isi pesan
TopicNameStringMytopicNama topik MNS
MessageIdString2F5B3C281B283D4EAC694B742528****ID pesan unik

Konfigurasi event uji

  1. Di halaman detail fungsi, klik tab Code, lalu klik ikon drop-down icon di samping Test Function dan pilih Configure Test Parameters.

  2. Di panel Configure Test Parameters, pilih Create New Test Event atau Modify Existing Test Event, masukkan Event Name, tempel salah satu contoh event di atas ke editor, lalu klik OK.

Langkah 3: Tulis dan uji kode fungsi

Contoh Python berikut menunjukkan cara menangani event pemicu topik MNS. Anda dapat menggunakannya sebagai templat fungsi dan menambahkan logika pemrosesan kustom Anda.

  1. Di halaman detail fungsi, klik tab Code, masukkan kode fungsi Anda di editor, lalu klik Deploy.

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"
  1. Klik Test Function di tab Code.

Setelah fungsi dijalankan, hasil eksekusi dan log akan muncul di tab Code.

Langkah selanjutnya

Konfigurasikan pemicu menggunakan alat alternatif:

Untuk mengubah atau menghapus pemicu yang sudah ada, lihat Manage triggers.