Azure İşlevleri genel bakış için Apache Kafka bağlamaları
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
Kafka uzantısı, host.json proje dosyanızda belirtilen bir uzantı paketinin parçasıdır. İşlevler sürüm 3.x veya üzerini hedefleyen bir proje oluşturduğunuzda, bu paketi zaten yüklemiş olmanız gerekir. Daha fazla bilgi edinmek için bkz . uzantı paketi.
Ç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 ve İşlev çalışma zamanı ayarları sekmesinde Çalışma zamanı ölçeği izlemeyi Açık duruma getirin.
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 | Type | 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 | 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 aşağıdaki özellikler, host.json bölümünde tetikleyiciler veya her iki çıkış bağlaması ve tetikleyici için de desteklenirkafka
:
Ö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 |