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.

Çalışma zamanı ölçeklendirmesini etkinleştirmek için Azure portal panelinin ekran görüntüsü.

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

Sonraki adımlar