Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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
Agar dapat menggunakan ekstensi pengikatan ini di aplikasi Anda, pastikan file host.json di akar proyek Anda berisi referensi ini extensionBundle :
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
Dalam contoh ini, version nilai [4.0.0, 5.0.0) menginstruksikan host Functions untuk menggunakan versi bundel yang setidaknya 4.0.0 tetapi kurang dari 5.0.0, yang mencakup semua versi potensial 4.x. Notasi ini secara efektif mempertahankan aplikasi Anda pada versi minor terbaru yang tersedia dari bundel ekstensi v4.x.
Jika memungkinkan, Anda harus menggunakan versi utama bundel ekstensi terbaru dan memungkinkan runtime untuk secara otomatis mempertahankan versi minor terbaru. Anda dapat melihat konten bundel terbaru pada halaman rilis bundel ekstensi. Untuk informasi selengkapnya, lihat Bundel ekstensi Azure Functions.
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 Microsoft Azure, di aplikasi fungsi Anda, pilih Konfigurasi.
Pada tab Pengaturan runtime fungsi , untuk Pemantauan Skala Runtime, pilih 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 | Bawaan | Jenis | 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. |
| Ukuran Batch Maks | 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 | setara dengan librdkafka |
|---|---|---|
| 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 |
| Sambungkan UlangBackoffM | Pemicu | reconnect.backoff.max.ms |
| Sambungkan KembaliBackoffMaxMs | Pemicu | reconnect.backoff.max.ms |
| SessionTimeoutMs | Pemicu | session.timeout.ms |
| SocketKeepaliveEnable | Keduanya | socket.keepalive.enable |
| StatisticsIntervalMs | Pemicu | statistics.interval.ms |