All Products
Search
Document Center

Function Compute:Pemicu Kafka

Last Updated:Apr 01, 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 lebih lanjut mengenai batas tersebut, lihat Batasan.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Langkah 1: Buat 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
ParameterWajibDeskripsiContoh
Consumer offsetYaTitik awal EventBridge menarik pesan. Earliest Offset: mulai dari pesan tertua yang tersedia. Latest Offset: hanya mulai dari pesan baru.Earliest Offset
Invocation methodYaCara 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 ConcurrencyTidakJumlah 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 uji coba

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

Catatan: Simulasi uji coba berguna untuk memvalidasi logika parsing 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:

BidangTipeContohDeskripsi
topicStringTopicNameNama topik.
partitionInt1Nomor partisi tempat pesan dikonsumsi.
offsetInt0Offset pesan dalam partisi tersebut.
timestampString1655952591589Timestamp Unix (dalam milidetik) yang menunjukkan kapan konsumsi pesan dimulai.

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

Langkah 3: Tulis dan uji 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);
      // Lakukan parsing parameter event dan proses event tersebut.
      callback(null, 'return result');
    }
  2. Uji fungsi menggunakan salah satu metode berikut:

    • Uji simulasi: Klik Test Function untuk menggunakan event uji coba yang dikonfigurasi pada Langkah 2. Metode ini berguna untuk memvalidasi logika parsing Anda tanpa koneksi Kafka langsung.

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

    image

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

    image

Lanjutan

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