Bagikan melalui


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

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.

  1. Di portal Microsoft Azure, di aplikasi fungsi Anda, pilih Konfigurasi.

  2. Pada tab Pengaturan runtime fungsi , untuk Pemantauan Skala Runtime, pilih Aktif.

    Cuplikan layar area portal Microsoft 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 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

Langkah berikutnya