Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure İşlevleri için Kafka uzantısı, çıkış bağlaması kullanarak Apache Kafka konularına değer yazmanızı sağlar. Kafka konularındaki iletilere yanıt olarak işlevlerinizi çağırmak için de tetikleyici kullanabilirsiniz.
Önemli
Kafka bağlamaları yalnızca Elastik Premium Plan ve Ayrılmış (App Service) planındaki İşlevler için kullanılabilir. Bunlar yalnızca İşlevler çalışma zamanının 3.x ve sonraki sürümlerinde desteklenir.
| Eylem | Tür |
|---|---|
| Yeni bir Kafka olayını temel alan bir işlev çalıştırın. | Tetikleyici |
| Kafka olay akışına yazın. | Çıkış bağlaması |
Uzantıyı yükleme
Yüklediğiniz NuGet uzantısı, işlev uygulamanızda kullandığınız C# moduna bağlıdır:
İşlevler yalıtılmış bir C# çalışan işleminde yürütülür. Daha fazla bilgi edinmek için bkz. Yalıtılmış çalışan işleminde C# Azure İşlevleri çalıştırma kılavuzu.
Bu NuGet paketini yükleyerek uzantıyı projenize ekleyin.
Paket yükleme
Bu bağlama uzantısını uygulamanızda kullanabilmek için projenizin kökündeki host.json dosyasının şu extensionBundle başvuruyu içerdiğinden emin olun:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
Bu örnekte, version değeri [4.0.0, 5.0.0) İşlevler konağına en az 4.0.0 ama daha küçük 5.0.0olan ve 4.x'in tüm olası sürümlerini içeren bir paket sürümü kullanma talimatı verir. Bu gösterimi, uygulamanızı v4.x uzantı paketinin kullanılabilir en son ikincil sürümünde etkili bir şekilde korur.
Mümkün olduğunda, en son uzantı paketi ana sürümünü kullanmanız ve çalışma zamanının en son ikincil sürümü otomatik olarak korumasına izin vermelisiniz. Uzantı paketleri yayın sayfasında en son paketin içeriğini görüntüleyebilirsiniz. Daha fazla bilgi için bkz. Azure İşlevleri uzantı paketleri.
Çalışma zamanı ölçeklendirmeyi etkinleştirme
Kafka tetikleyicilerini ve bağlamalarını kullanırken işlevlerinizin Premium planında düzgün ölçeklendirilmesine izin vermek için çalışma zamanı ölçeği izlemeyi etkinleştirmeniz gerekir.
Azure portalında işlev uygulamanızda Yapılandırma'yı seçin.
İşlev çalışma zamanı ayarları sekmesinde, Çalışma Zamanı Ölçeği İzleme için Açık'ı seçin.
host.json ayarları
Bu bölümde, 3.x ve üzeri sürümlerde bu bağlama için kullanılabilen yapılandırma ayarları açıklanmaktadır. host.json dosyasındaki ayarlar, bir işlev uygulaması örneğindeki tüm işlevler için geçerlidir. 3.x ve sonraki sürümlerdeki işlev uygulaması yapılandırma ayarları hakkında daha fazla bilgi için Azure İşlevleri için host.json başvurusuna bakın.
{
"version": "2.0",
"extensions": {
"kafka": {
"maxBatchSize": 64,
"SubscriberIntervalInSeconds": 1,
"ExecutorChannelCapacity": 1,
"ChannelFullRetryIntervalInMs": 50
}
}
}
| Özellik | Varsayılan | Tür | Açıklama |
|---|---|---|---|
| ChannelFullRetryIntervalInMs | 50 | Tetikle | Kapasitedeki kanala öğe eklemeye çalışırken kullanılan abone yeniden deneme aralığını milisaniye olarak tanımlar. |
| YürütücüChannelCapacity | 1 | Her ikisi | Kanal ileti kapasitesini tanımlar. Kapasiteye ulaşıldıktan sonra Kafka abonesi, işlev yetişene kadar duraklatılır. |
| MaxBatchSize (Maksimum Parti Boyutu) | 64 | Tetikle | Kafka ile tetiklenen bir işlev çağrılırken en büyük toplu iş boyutu. |
| SubscriberIntervalInSeconds | 1 | Tetikle | Saniye cinsinden işlev başına en düşük gelen iletilerin yürütülma sıklığını tanımlar. Yalnızca ileti birimi küçük olduğunda MaxBatchSize / SubscriberIntervalInSeconds |
Apache Kafka C/C++ istemci kitaplığından devralınan
| Özellik | Şunlara uygulanır | librdkafka eşdeğeri |
|---|---|---|
| AutoCommitIntervalMs | Tetikle | auto.commit.interval.ms |
| AutoOffsetReset | Tetikle | auto.offset.reset |
| FetchMaxBytes | Tetikle | fetch.max.bytes |
| LibkafkaDebug | Her ikisi | debug |
| MaxPartitionFetchBytes | Tetikle | max.partition.fetch.bytes |
| MaxPollIntervalMs | Tetikle | max.poll.interval.ms |
| MetadataMaxAgeMs | Her ikisi | metadata.max.age.ms |
| QueuedMinMessages | Tetikle | queued.min.messages |
| QueuedMaxMessagesKbytes | Tetikle | queued.max.messages.kbytes |
| ReconnectBackoffMs | Tetikle | reconnect.backoff.max.ms |
| ReconnectBackoffMaxMs | Tetikle | reconnect.backoff.max.ms |
| SessionTimeoutMs | Tetikle | session.timeout.ms |
| SocketKeepaliveEnable | Her ikisi | socket.keepalive.enable |
| İstatistiklerIntervalM'ler | Tetikle | statistics.interval.ms |