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.
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 |