Pengikatan data Apache Kafka untuk ikhtisar Azure Functions

Ekstensi Kafka untuk Azure Functions memungkinkan Anda menulis nilai ke topik Apache Kafka dengan menggunakan pengikatan output. Anda juga dapat menggunakan pemicu untuk memanggil fungsi Anda sebagai respons terhadap pesan dalam topik Kafka.

Penting

Pengikatan Kafka hanya tersedia untuk Functions pada Paket Elastic Premium dan paket Dedicated (App Service). Paket tersebut hanya didukung pada runtime Functions versi 3.x dan versi yang lebih baru.

Perbuatan Jenis
Jalankan fungsi berdasarkan peristiwa Kafka baru. Pemicu
Tulis ke aliran peristiwa Kafka. Pengikatan output

Menginstal ekstensi

Paket NuGet ekstensi yang Anda instal bergantung pada mode C# yang Anda gunakan di aplikasi fungsi Anda:

Functions dijalankan dalam proses pekerja C# yang terisolasi. Untuk mempelajari selengkapnya, lihat Panduan untuk menjalankan C# Azure Functions dalam proses pekerja yang terisolasi.

Tambahkan ekstensi ke proyek Anda dengan memasang Paket NuGet ini.

Memasang bundel

Ekstensi Kafka adalah bagian dari bundel ekstensi, yang ditentukan dalam file proyek host.json Anda. Saat Anda membuat proyek yang menargetkan Functions versi 3.x atau yang lebih baru, Anda seharusnya sudah menginstal bundel ini. Untuk mempelajari lebih lanjut, lihat bundel ekstensi.

Fungsikan penskalaan runtime

Untuk memungkinkan fungsi Anda menskalakan dengan benar pada rencana Premium saat menggunakan pemicu dan pengikatan Kafka, Anda perlu mengaktifkan pemantauan skala runtime.

Di portal Azure, di aplikasi fungsi Anda, pilih Konfigurasi dan pada tab Pengaturan runtime fungsi, aktifkan Pemantauan skala runtime menjadi Aktif.

Cuplikan layar panel portal Azure untuk mengaktifkan penskalaan runtime.

Pengaturan host.json

Bagian ini menjelaskan pengaturan konfigurasi yang tersedia untuk pengikatan ini dalam versi 3.x dan yang lebih tinggi. Pengaturan dalam file host.json berlaku untuk semua fungsi dalam instans aplikasi fungsi. Untuk informasi selengkapnya tentang pengaturan konfigurasi aplikasi fungsi di versi 3.x dan versi yang lebih baru, lihat referensi host.json untuk Azure Functions.

{
    "version": "2.0",
    "extensions": {
        "kafka": {
            "maxBatchSize": 64,
            "SubscriberIntervalInSeconds": 1,
            "ExecutorChannelCapacity": 1,
            "ChannelFullRetryIntervalInMs": 50
        }
    }
}

Properti Default Tipe Deskripsi
ChannelFullRetryIntervalInMs 50 Pemicu Menentukan interval coba lagi pelanggan, dalam milidetik, yang digunakan saat mencoba menambahkan item ke saluran kapasitas.
ExecutorChannelCapacity 1 Keduanya Menentukan kapasitas pesan saluran. Setelah kapasitas tercapai, pelanggan Kafka berhenti sejenak sampai fungsi mengejar ketinggalan.
MaxBatchSize 64 Pemicu Ukuran batch maksimum saat memanggil fungsi yang dipicu Kafka.
SubscriberIntervalInSeconds 1 Pemicu Menentukan frekuensi minimum pesan masuk dijalankan, per fungsi dalam detik. Hanya ketika volume pesan kurang dari MaxBatchSize / SubscriberIntervalInSeconds

Properti berikut, yang diwarisi dari pustaka klien Apache Kafka C/C++, juga didukung di kafka bagian host.json, untuk pemicu atau pengikatan output dan pemicu:

Properti Berlaku untuk librdkafka equivalent
AutoCommitIntervalMs Pemicu auto.commit.interval.ms
AutoOffsetReset Pemicu auto.offset.reset
FetchMaxBytes Pemicu fetch.max.bytes
LibkafkaDebug Keduanya debug
MaxPartitionFetchBytes Pemicu max.partition.fetch.bytes
MaxPollIntervalMs Pemicu max.poll.interval.ms
MetadataMaxAgeMs Keduanya metadata.max.age.ms
QueuedMinMessages Pemicu queued.min.messages
QueuedMaxMessagesKbytes Pemicu queued.max.messages.kbytes
ReconnectBackoffMs Pemicu reconnect.backoff.max.ms
ReconnectBackoffMaxMs Pemicu reconnect.backoff.max.ms
SessionTimeoutMs Pemicu session.timeout.ms
SocketKeepaliveEnable Keduanya socket.keepalive.enable
StatisticsIntervalMs Pemicu statistics.interval.ms

Langkah berikutnya