Overzicht van Apache Kafka-bindingen voor Azure Functions

Met de Kafka-extensie voor Azure Functions kunt u waarden naar Apache Kafka-onderwerpen schrijven met behulp van een uitvoerbinding. U kunt ook een trigger gebruiken om uw functies aan te roepen als reactie op berichten in Kafka-onderwerpen.

Belangrijk

Kafka-bindingen zijn alleen beschikbaar voor Functions in het Elastic Premium-abonnement en het Toegewezen (App Service)-abonnement. Ze worden alleen ondersteund op versie 3.x en latere versie van de Functions-runtime.

Actie Type
Een functie uitvoeren op basis van een nieuwe Kafka-gebeurtenis. Trigger
Schrijf naar de Kafka-gebeurtenisstroom. Uitvoerbinding

De extensie installeren

Het NuGet-extensiepakket dat u installeert, is afhankelijk van de C#-modus die u gebruikt in uw functie-app:

Functies worden uitgevoerd in een geïsoleerd C#-werkproces. Zie De handleiding voor het uitvoeren van C# Azure Functions in een geïsoleerd werkproces voor meer informatie.

Voeg de extensie toe aan uw project door dit NuGet-pakket te installeren.

Bundel installeren

De Kafka-extensie maakt deel uit van een extensiebundel, die is opgegeven in uw host.json projectbestand. Wanneer u een project maakt dat is gericht op Functions versie 3.x of hoger, moet deze bundel al zijn geïnstalleerd. Zie uitbreidingsbundel voor meer informatie.

Runtime schalen inschakelen

Als u wilt dat uw functies op de juiste manier kunnen worden geschaald in het Premium-abonnement bij het gebruik van Kafka-triggers en -bindingen, moet u bewaking van runtimeschaal inschakelen.

Kies configuratie in de Azure-portal in uw functie-app en schakel op het tabblad Runtime-runtime-instellingen bewaking van Runtime-schaal in op Aan.

Schermopname van het deelvenster Azure Portal om runtime schalen in te schakelen.

host.json-instellingen

In deze sectie worden de configuratie-instellingen beschreven die beschikbaar zijn voor deze binding in versie 3.x en hoger. Instellingen in het bestand host.json van toepassing op alle functies in een exemplaar van een functie-app. Zie de host.json-verwijzing voor Azure Functions voor meer informatie over configuratie-instellingen voor functie-apps in versies 3.x en latere versies.

{
    "version": "2.0",
    "extensions": {
        "kafka": {
            "maxBatchSize": 64,
            "SubscriberIntervalInSeconds": 1,
            "ExecutorChannelCapacity": 1,
            "ChannelFullRetryIntervalInMs": 50
        }
    }
}

Eigenschappen Standaard Type Description
ChannelFullRetryIntervalInMs 50 Activator Definieert het interval voor opnieuw proberen van abonnees, in milliseconden, dat wordt gebruikt bij het toevoegen van items aan een at-capacity-kanaal.
ExecutorChannelCapacity 1 Beide Definieert de capaciteit van het kanaalbericht. Zodra de capaciteit is bereikt, wordt de Kafka-abonnee onderbroken totdat de functie is opgelopen.
MaxBatchSize 64 Activator Maximale batchgrootte bij het aanroepen van een door Kafka geactiveerde functie.
SubscriberIntervalInSeconds 1 Activator Hiermee definieert u de minimale frequentie van binnenkomende berichten, per functie in seconden. Alleen wanneer het berichtvolume kleiner is dan MaxBatchSize / SubscriberIntervalInSeconds

De volgende eigenschappen, die worden overgenomen van de Apache Kafka C/C++-clientbibliotheek, worden ook ondersteund in de kafka sectie van host.json, voor triggers of zowel uitvoerbindingen als triggers en triggers:

Eigenschappen Van toepassing op librdkafka equivalent
AutoCommitIntervalMs Activator auto.commit.interval.ms
AutoOffsetReset Activator auto.offset.reset
FetchMaxBytes Activator fetch.max.bytes
LibkafkaDebug Beide debug
MaxPartitionFetchBytes Activator max.partition.fetch.bytes
MaxPollIntervalMs Activator max.poll.interval.ms
MetadataMaxAgeMs Beide metadata.max.age.ms
QueuedMinMessages Activator queued.min.messages
QueuedMaxMessagesKbytes Activator queued.max.messages.kbytes
Opnieuw verbinding maken met BackoffMs Activator reconnect.backoff.max.ms
Opnieuw verbinding maken MetBackoffMaxMs Activator reconnect.backoff.max.ms
SessionTimeoutMs Activator session.timeout.ms
SocketKeepaliveEnable Beide socket.keepalive.enable
StatisticsIntervalMs Activator statistics.interval.ms

Volgende stappen