All Products
Search
Document Center

Function Compute:Pemicu Kafka

Last Updated:Sep 10, 2026

Pemicu ApsaraMQ for Kafka memanggil fungsi Function Compute ketika pesan dipublikasikan ke topik Kafka, sehingga memungkinkan pemrosesan berbasis event tanpa polling.

Cara kerja

ApsaraMQ for Kafka terintegrasi dengan Function Compute melalui EventBridge. Saat Anda membuat pemicu di Konsol Function Compute, FC secara otomatis membuat event streams di EventBridge berdasarkan konfigurasi pemicu tersebut.

Saat aktif, pemicu memantau topik yang ditentukan. Ketika sebuah pesan dipublikasikan ke ApsaraMQ for Kafka, EventBridge mengirimkan satu atau beberapa pesan dalam satu batch ke fungsi terkait sesuai dengan pengaturan batch Anda.

Batasan

  • Instans ApsaraMQ for Kafka harus berada di Wilayah yang sama dengan fungsi tersebut.

  • Jika jumlah event streams mencapai batas maksimum, tidak ada pemicu Kafka tambahan yang dapat dibuat. Untuk informasi selengkapnya mengenai batasan tersebut, lihat Batasan.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Langkah 1: Membuat pemicu

  1. Masuk ke Konsol Function Compute dan buka fungsi target.

  2. Pada tab Configurations, buka halaman Triggers, lalu klik Create Trigger.

  3. Konfigurasikan parameter pemicu seperti yang dijelaskan dalam tabel berikut, lalu klik OK.

image
Parameter Wajib Deskripsi Contoh
Consumer offset Ya Titik awal EventBridge menarik pesan. Earliest Offset: mulai dari pesan paling lama yang tersedia. Latest Offset: hanya mulai dari pesan baru. Earliest Offset
Invocation method Ya Cara fungsi dipanggil saat event atau batch event dikirimkan. Sync Invocation: menunggu respons sebelum memproses batch berikutnya; batas muatan adalah 32 MB. Lihat Synchronous invocation. Async Invocation: langsung mengembalikan hasil dan melanjutkan ke batch berikutnya; batas muatan adalah 128 KB. Lihat Asynchronous invocation. Sync Invocation
Max. Delivery Concurrency Tidak Jumlah maksimum pesan Kafka yang dikirimkan ke Function Compute secara konkuren. Nilai yang valid: 1–300. Hanya tersedia untuk Sync Invocation. Untuk menaikkan batas ini, buka Quota Center of EventBridge, cari EventStreaming FC Sink Maximum Concurrent Number of Synchronous Posting, lalu klik Apply. 1

Untuk pengaturan lanjutan seperti push settings, kebijakan retry, dan dead-letter queues, lihat Advanced features of triggers.

Langkah 2: (Opsional) Konfigurasi parameter pengujian

Pemicu meneruskan pesan Kafka ke fungsi sebagai parameter event. Untuk menguji fungsi tanpa mempublikasikan pesan nyata, konfigurasikan secara manual event pengujian yang mensimulasikan muatan pemicu.

Note: Simulasi pengujian ini berguna untuk memvalidasi logika penguraian Anda, tetapi tidak menguji seluruh pipeline pemicu. Untuk memverifikasi perilaku end-to-end, gunakan pesan Kafka aktual seperti yang dijelaskan pada Langkah 3.
  1. Pada tab Code, klik ikon image.png di samping Test Function, lalu pilih Configure Test Parameters.

  2. Pada panel Configure Test Parameters, klik Create New Test Event atau Modify Existing Test Event, masukkan nama dan konten event, lalu klik OK.

Contoh berikut menunjukkan struktur event untuk dua pesan dalam satu batch:

[
    {
        "specversion": "1.0",
        "id": "8e215af8-ca18-4249-8645-f96c1026****",
        "source": "acs:alikafka",
        "type": "alikafka:Topic:Message",
        "subject": "acs:alikafka_pre-cn-i7m2t7t1****:topic:mytopic",
        "datacontenttype": "application/json; charset=utf-8",
        "time": "2022-06-23T02:49:51.589Z",
        "aliyunaccountid": "164901546557****",
        "data": {
            "topic": "****",
            "partition": 7,
            "offset": 25,
            "timestamp": 1655952591589,
            "headers": {
                "headers": [],
                "isReadOnly": false
            },
            "key": "keytest",
            "value": "hello kafka msg"
        }
    },
    {
        "specversion": "1.0",
        "id": "8e215af8-ca18-4249-8645-f96c1026****",
        "source": "acs:alikafka",
        "type": "alikafka:Topic:Message",
        "subject": "acs:alikafka_pre-cn-i7m2t7t1****:topic:mytopic",
        "datacontenttype": "application/json; charset=utf-8",
        "time": "2022-06-23T02:49:51.589Z",
        "aliyunaccountid": "164901546557****",
        "data": {
            "topic": "****",
            "partition": 7,
            "offset": 25,
            "timestamp": 1655952591589,
            "headers": {
                "headers": [],
                "isReadOnly": false
            },
            "key": "keytest",
            "value": "hello kafka msg"
        }
    }
]

Objek data berisi bidang-bidang spesifik Kafka:

Field Type Contoh Deskripsi
topic String TopicName Nama topik.
partition Int 1 Nomor partisi tempat pesan dikonsumsi.
offset Int 0 Offset pesan dalam partisi tersebut.
timestamp String 1655952591589 Timestamp Unix (ms) yang menunjukkan kapan konsumsi pesan dimulai.

Untuk bidang envelope CloudEvents (specversion, id, source, type, dll.), lihat Event overview.

Langkah 3: Menulis dan menguji kode fungsi

  1. Pada tab Code, tulis kode fungsi Anda di editor, lalu klik Deploy. Contoh berikut menunjukkan penanganan fungsi dalam Node.js:

    'use strict';
    /*
    Untuk mengaktifkan fitur initializer,
    implementasikan fungsi inisialisasi seperti di bawah ini:
    exports.initializer = (context, callback) => {
      console.log('initializing');
      callback(null, '');
    };
    */
    exports.handler = (event, context, callback) => {
      console.log("event: %s", event);
      // Uraikan parameter event dan proses event tersebut.
      callback(null, 'return result');
    }
  2. Uji fungsi menggunakan salah satu metode berikut:

    • Simulated test: Klik Test Function untuk menggunakan event pengujian yang dikonfigurasi pada Langkah 2. Ini berguna untuk memvalidasi logika penguraian Anda tanpa koneksi Kafka langsung.

    • End-to-end test: Masuk ke Konsol ApsaraMQ for Kafka, pilih topik, lalu klik Send Message untuk mempublikasikan pesan nyata. Pemicu akan mendeteksi pesan tersebut dan secara otomatis memanggil fungsi.

    image

  3. Setelah eksekusi, lihat output di Real-time Logs.

    image

Langkah selanjutnya

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