All Products
Search
Document Center

Function Compute:Gunakan Function Compute untuk Membersihkan Data Pesan

Last Updated:Mar 20, 2026

Fitur pembersihan data pesan menyediakan templat pemrosesan pesan umum, seperti pemisahan pesan, perutean dinamis, dan pengayaan pesan. Anda dapat langsung menggunakan templat ini untuk memproses pesan atau memodifikasi kodenya sesuai kebutuhan. Topik ini menjelaskan jenis dan penggunaan templat pembersihan data pesan untuk ApsaraMQ for RocketMQ.

Informasi latar belakang

Tugas pembersihan data pesan menyediakan kemampuan operator dasar dan menggunakan Function Compute sebagai logika dasarnya. Setelah membuat tugas pembersihan data pesan ApsaraMQ for RocketMQ, Anda dapat masuk ke Function Compute console untuk menyesuaikan kode dan mengubah konfigurasi fungsi yang sesuai.

Operator

Kemampuan Operator

Message filtering

Sesuaikan konten pesan menggunakan ekspresi reguler. Kirim pesan yang sesuai ke target. Untuk informasi selengkapnya, lihat event patterns.

Message transformation

Ganti konten pesan berdasarkan pencocokan string. Misalnya, ubah karakter antara huruf besar dan kecil. Kirim pesan yang telah ditransformasi ke target. Untuk informasi selengkapnya, lihat event content transformation.

Content splitting

Pisahkan konten pesan menggunakan ekspresi reguler. Kirim setiap pesan hasil pemisahan ke target.

Dynamic routing

Sesuaikan konten pesan menggunakan ekspresi reguler. Rutekan pesan yang sesuai ke target yang sesuai. Rutekan pesan yang tidak sesuai ke target default.

Content enrichment

Perkaya konten pesan menggunakan sumber pengayaan. Misalnya, jika pesan asli berisi AccountID, lakukan kueri ke database menggunakan AccountID tersebut. Lalu tambahkan wilayah pelanggan ke isi pesan sebelum mengirimkannya ke layanan target.

Content mapping

Petakan konten pesan menggunakan ekspresi reguler. Misalnya, sembunyikan bidang sensitif atau kurangi ukuran pesan hingga standar minimum.

Content splitting

Contoh

Misalnya, pertimbangkan daftar siswa berikut.

message:
[Zhao San, male, 17, Class 4; Li Si, female, 17, Class 3; Wang Wu, male, 17, Class 4]

Anda dapat memisahkan pesan ini menjadi catatan siswa individual, lalu mengirim setiap catatan sebagai pesan terpisah ke layanan targetnya. Hasilnya sebagai berikut.

message:
    [Zhao San, male, 17, Class 4]
message:
    [Li Si, female, 17, Class 3]
message:
    [Wang Wu, male, 17, Class 4]
image

Prosedur

  1. Masuk ke Konsol ApsaraMQ for RocketMQ.

  2. Di panel navigasi sebelah kiri, pilih . Lalu, di bilah menu atas, pilih wilayah.

  3. Pada halaman Message sink, klik Create task.

  4. Di panel Create message sink, konfigurasikan item berikut, lalu klik OK.

    Item konfigurasi utama dijelaskan di bawah ini. Biarkan semua pengaturan lain pada nilai default-nya.

    • Informasi dasar

      Item konfigurasi

      Deskripsi

      Task name

      Masukkan nama tugas.

      Egress Type

      Pilih RocketMQ. Layanan pesan yang didukung meliputi RocketMQ, RabbitMQ, Simple Message Queue (formerly MNS), dan Kafka.

    • Konfigurasi sumber daya

      Item konfigurasi

      Deskripsi

      Source

      Region

      Pilih China (Hangzhou).

      Version

      Pilih versi RocketMQ. Contoh ini menggunakan RocketMQ 5.x.

      RocketMQ instance

      Pilih instans RocketMQ yang menghasilkan pesan.

      Topic

      Pilih topik dari instans sumber.

      Target

      Version

      Pilih versi RocketMQ yang menerima pesan. Contoh ini menggunakan RocketMQ 5.x.

      Instance ID

      Pilih ID instans dari instans RocketMQ yang menerima pesan.

      Topic

      Pilih topik dari instans target.

    • Pemrosesan data

      • Message filtering: Pilih No filtering.

      • Message transformation: Pilih Custom configuration. Untuk Message body (body), pilih Data cleansing. Lalu pilih Create function template. Untuk Function template, pilih Content splitting transform_split. Kemudian, modifikasi kode fungsi sesuai kebutuhan.

    Setelah pembuatan, Anda dapat masuk ke Function Compute console untuk melihat service dan function yang dibuat secara otomatis.

Dynamic routing

Contoh

Misalnya, pertimbangkan daftar inventaris pasta gigi berikut.

message:
[BrandA, toothpaste, $12.98, 100g
 BrandB, toothpaste, $7.99, 80g
 BrandC, toothpaste, $1.99, 100g]

Anda dapat merutekan daftar ini ke topik target menggunakan aturan dinamis kustom. Aturannya sebagai berikut.

  • Jika pesan diawali dengan BrandA, kirim ke BrandA-item-topic dan BrandA-discount-topic.

  • Jika pesan diawali dengan BrandB, kirim ke BrandB-item-topic dan BrandB-discount-topic.

  • Semua pesan lainnya dapat dikirim ke Unknown-brand-topic.

Representasi JSON dari aturan tersebut adalah sebagai berikut.

{
  "defaultTopic": "Unknown-brand-topic",
  "rules": [
    {
      "regex": "^BrandA",
      "targetTopics": [
        "BrandA-item-topic",
        "BrandA-discount-topic"
      ]
    },
    {
      "regex": "^BrandB",
      "targetTopics": [
        "BrandB-item-topic",
        "BrandB-discount-topic"
      ]
    }
  ]
}
image

Prosedur

Untuk langkah-langkah detail, lihat prosedur untuk content splitting. Untuk Function template, pilih Dynamic routing dynamic_routing.

Content enrichment

Contoh

Contoh ini menunjukkan cara memperkaya segmen alamat IP. Asumsikan log akses untuk suatu layanan adalah sebagai berikut.

{
  "accountID": "164901546557****",
  "hostIP": "192.168.XX.XX"
}

Anda harus mengidentifikasi origin alamat IP tersebut. Anda dapat menyimpan pemetaannya dalam database MySQL.

CREATE TABLE `tb_ip` (
    ->      `IP` VARCHAR(256) NOT NULL,
    ->     `Region` VARCHAR(256) NOT NULL,
    ->      `ISP` VARCHAR(256) NOT NULL,
    ->      PRIMARY KEY (`IP`)
    -> );

Pesan yang diperkaya adalah sebagai berikut.

{
  "accountID": "164901546557****",
  "hostIP": "192.168.XX.XX",
  "region": "beijing"
}
image

Prosedur

Untuk langkah-langkah detail, lihat prosedur untuk content splitting. Untuk Function template, pilih Content enrichment transform_enrichment.

Content mapping

Contoh

Misalnya, pertimbangkan data pendaftaran karyawan berikut untuk suatu perusahaan. Data ini mencakup informasi pribadi, seperti ID karyawan dan nomor telepon.

Zhao San, ID 1, 131 1111 1111
Li Si, ID 2, 132 2222 2222
Wang Wu, ID 3, 133 3333 3333

Anda dapat menyembunyikan informasi pribadi dalam pesan tersebut, lalu mengirimnya ke layanan target. Hasilnya sebagai berikut.

Zhang*, Employee ID *, *** **** ****
Li*, Employee ID *, *** **** ****
Wang*, Employee ID *, *** **** ****
image

Prosedur

Untuk langkah-langkah detail, lihat prosedur untuk content splitting. Untuk Function template, pilih Content mapping transform_projection.