Aracılığıyla paylaş


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

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.

  1. Azure portalında işlev uygulamanızda Yapılandırma'yı seçin.

  2. İşlev çalışma zamanı ayarları sekmesinde, Çalışma Zamanı Ölçeği İzleme için Açık'ı seçin.

    Çalışma zamanı ölçeklendirmesini etkinleştirmeye yönelik Azure portal alanının 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 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

Sonraki adımlar