全部产品
Search
文档中心

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

更新时间:Dec 10, 2025

Simple Message Queue (formerly MNS) dapat digunakan sebagai sumber event melalui EventBridge. Anda dapat mengonfigurasi pemicu topik di Function Compute untuk memicu fungsi terkait guna melakukan pemrosesan khusus terhadap pesan yang dikirim ke topik tersebut.

Latar Belakang

Simple Message Queue (formerly MNS) adalah layanan messaging terdistribusi yang menawarkan skalabilitas, efisiensi tinggi, keandalan, keamanan, dan ketersediaan. Layanan ini memungkinkan pengembang aplikasi mentransfer data dan notifikasi antar komponen terdistribusi dalam suatu aplikasi serta membangun sistem yang loosely coupled. Di Simple Message Queue (formerly MNS), pesan dipublikasikan ke topik. Publisher dapat memanggil operasi PublishMessage untuk mempublikasikan pesan ke suatu topik. Subscriber dari topik tersebut akan menerima pesan tersebut. Untuk informasi selengkapnya, lihat PublishMessage.

Mengonfigurasi pemicu untuk suatu topik sama artinya dengan mendaftarkan fungsi sebagai subscriber ke topik tersebut. Ketika publisher mempublikasikan pesan ke topik, pesan tersebut diteruskan ke fungsi dan digunakan sebagai parameter event dari penanganan fungsi untuk memicu eksekusi fungsi tersebut. Untuk informasi selengkapnya, lihat Dasar-dasar.

Integrasi antara Simple Message Queue (formerly MNS) dan Function Compute memberikan manfaat berikut:

  • Memungkinkan Anda melakukan operasi lanjutan pada pesan sebelum mengirimkannya melalui email atau pesan teks.

  • Menghilangkan kebutuhan untuk membuat layanan pada endpoint HTTP.

  • Mendukung berbagai operasi kustom. Misalnya, Anda dapat mengirim pesan ke Slack atau menyimpan pesan tertentu secara persisten.

Prasyarat

Catatan Penggunaan

  • Topik Simple Message Queue (formerly MNS) dan fungsi Function Compute yang akan dikaitkan harus berada di wilayah yang sama.

  • Hindari loop rekursif.

    Sebagai contoh, hindari logika berikut saat menulis kode fungsi: Topik A memicu Fungsi B, lalu Fungsi B mempublikasikan pesan baru ke Topik A, yang kemudian memicu Fungsi B lagi. Logika ini menghasilkan loop tak hingga dalam pemanggilan fungsi.

Langkah 1: Buat topik dan pemicu

  1. Masuk ke Konsol Function Compute. Pada panel navigasi di sebelah kiri, pilih Function Management > Functions.

  2. Pada bilah navigasi atas, pilih wilayah. Di halaman Functions, klik fungsi yang dituju.

  3. Di halaman detail fungsi, klik tab Triggers. Lalu, klik Create Trigger.

  4. Di panel Create Trigger, konfigurasikan parameter, lalu klik OK.

    Parameter

    Deskripsi

    Contoh

    Trigger Type

    Pilih Simple Message Queue (formerly MNS) Triggered by Topic Async Invocation.

    Simple Message Queue (formerly MNS) Triggered by Topic

    Name

    Tentukan nama pemicu sesuai keinginan.

    trigger-mns

    Version or Alias

    Nilai default: LATEST. Jika ingin membuat pemicu untuk versi atau alias lain, kembali ke halaman Function Details dan pilih versi atau alias di pojok kanan atas halaman. Untuk informasi selengkapnya tentang versi dan alias, lihat Kelola versi dan Kelola alias.

    LATEST

    MNS Region

    Pilih wilayah tempat topik berada. Topik harus berada di wilayah yang sama dengan fungsi di Function Compute.

    China (Chengdu)

    Topic

    Pilih topik dari daftar.

    Mytopic

    Filter Tag

    Tentukan tag untuk penyaringan pesan.

    Eksekusi fungsi hanya dipicu ketika pesan yang diterima mengandung tag penyaringan 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 informasi selengkapnya tentang cara menentukan kebijakan retry, lihat NotifyStrategy.

    Backoff Retry

    Role Name

    Pilih AliyunMNSNotificationRole.

    Catatan

    Setelah mengonfigurasi parameter di atas, klik OK. Jika Anda membuat pemicu jenis ini untuk pertama kalinya, klik Authorize Now pada pesan yang muncul.

    AliyunMNSNotificationRole

Langkah 2: Konfigurasi parameter input fungsi

  1. Di tab Code pada halaman detail fungsi, klik ikon image.png di samping 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 event dan konten event, lalu klik OK.

    Pesan yang dipublikasikan ke topik diproses berdasarkan format isi pesan. Hal ini membentuk event yang digunakan untuk memanggil fungsi di Function Compute. Untuk informasi selengkapnya, lihat NotifyContentFormat.

    • Contoh format konten event jika Anda mengatur parameter Event Format ke STREAM untuk pemicu topik:

      • Kode contoh berikut menunjukkan format konten event jika pesan tidak mengandung atribut pesan:

        Catatan

        Jika pesan tidak mengandung atribut pesan, konten event berupa string dalam format JSON.

        # Isi pesan. 
        'hello topic'
      • Kode contoh berikut menunjukkan format konten event jika pesan mengandung atribut pesan:

        Catatan

        Konten event berisi pasangan kunci-nilai yang terkait dengan atribut pesan. Untuk informasi selengkapnya, lihat PublishMessage.

            {
                "body": "hello topic",
                "attrs": {
                    "Extend": "{\\"key\\":\\"value\\"}"
                }
            }                    
    • Contoh format konten event jika Anda mengatur parameter Event Format ke JSON untuk pemicu topik:

      • Kode contoh berikut menunjukkan format konten event jika pesan tidak mengandung atribut pesan:

            {
                "TopicOwner": "118620210433****",
                "Message": "hello topic",
                "Subscriber": "118620210433****",
                "PublishTime": 1550216480040,
                "SubscriptionName": "test-fc-subscribe",
                "MessageMD5": "BA4BA9B48AC81F0F9C66F6C909C3****",
                "TopicName": "Mytopic",
                "MessageId": "2F5B3C082B923D4EAC694B76D928****"
            }        
                                    
      • Kode contoh berikut menunjukkan format konten event jika pesan mengandung atribut pesan:

        Catatan

        Konten event berisi pasangan kunci-nilai yang terkait dengan atribut pesan. Untuk informasi selengkapnya, 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 parameter-parameter event.

    Parameter

    Tipe

    Contoh

    Deskripsi

    key

    String

    value

    Pasangan kunci-nilai yang terkait dengan atribut pesan.

    TopicOwner

    String

    118620210433****

    ID akun pemilik topik.

    Message

    String

    hello topic

    Isi pesan.

    Subscriber

    String

    118620210433****

    ID akun pengguna yang berlangganan topik.

    PublishTime

    Int

    1550216302888

    Waktu pesan dipublikasikan.

    SubscriptionName

    String

    test-fc-subscribe

    Nama langganan.

    MessageMD5

    String

    BA4BA9B48AC81F0F9C66F6C909C3****

    Nilai hash MD5 dari isi pesan.

    TopicName

    String

    Mytopic

    Nama topik.

    MessageId

    String

    2F5B3C281B283D4EAC694B742528****

    ID pesan.

Langkah 3: Tulis kode fungsi dan uji fungsi

Setelah membuat pemicu topik, Anda dapat menulis kode fungsi dan mengujinya untuk memverifikasi kevalidan kode tersebut.

  1. Di tab Code pada halaman Function Details, tulis kode di editor kode dan klik Deploy.

    Dalam contoh ini, kode fungsi ditulis dalam Python. Kode contoh berikut dapat digunakan sebagai templat fungsi untuk pemicu topik:

    import json
    import logging
    
    def handler(event, context):
      logger = logging.getLogger()
      logger.info("mns_topic trigger event = {}".format(event))
      # Contohnya, Anda dapat mencatat event ke Tablestore. 
      return "OK"                     
  2. Klik Test Function.

    Setelah fungsi dieksekusi, Anda dapat melihat hasilnya di tab Code.

Informasi Lebih Lanjut

Selain melalui Konsol Function Compute, Anda juga dapat mengonfigurasi pemicu dengan cara berikut:

  • Gunakan tool Serverless Devs untuk mengonfigurasi pemicu. Untuk informasi selengkapnya, lihat Perintah umum Serverless Devs.

  • Gunakan SDK untuk mengonfigurasi pemicu. Untuk informasi selengkapnya, lihat SDK.

Untuk mengubah atau menghapus pemicu, lihat Kelola pemicu.