Overzicht van Apache Kafka-bindingen voor Azure Functions

Met de Kafka-extensie voor Azure Functions kunt u waarden schrijven naar Apache Kafka-onderwerpen 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 beschikbaar voor Functions in het Flex Consumption-abonnement, elastic Premium-abonnement en toegewezen (App Service)-abonnement. Ze worden alleen ondersteund op versie 4.x van de Functions-runtime.

Actie Typologie
Een functie uitvoeren op basis van een nieuwe Kafka-gebeurtenis. Trekker
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

Als u deze bindingsextensie in uw app wilt kunnen gebruiken, moet u ervoor zorgen dat het host.json bestand in de hoofdmap van uw project deze extensionBundle verwijzing bevat:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[4.0.0, 5.0.0)"
    }
}

In dit voorbeeld geeft de version waarde van [4.0.0, 5.0.0) de Functions-host opdracht om een bundelversie te gebruiken die ten minste 4.0.0 maar kleiner is dan 5.0.0, die alle mogelijke versies van 4.x bevat. Deze notatie onderhoudt uw app effectief op de nieuwste beschikbare secundaire versie van de v4.x-extensiebundel.

Indien mogelijk moet u de meest recente primaire versie van de extensiebundel gebruiken en toestaan dat de runtime automatisch de meest recente secundaire versie onderhoudt. U kunt de inhoud van de meest recente bundel bekijken op de releasepagina voor extensiebundels. Zie Azure Functions-extensiebundels 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.

  1. Selecteer Configuratie in de Azure-portal in uw functie-app.

  2. Selecteer op het tabblad Runtime-instellingen voor Runtime-schaalbewaking de optie Aan.

    Schermopname van het gebied azure Portal voor het inschakelen van runtime-schaalaanpassing.

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 zijn 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 Typologie Beschrijving
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.
Max. BatchSize 64 Activator Het maximale aantal berichten dat intern wordt verzameld voordat de berichten worden verzonden. Deze waarde is een bovengrens, geen minimale batchgrootte.
SubscriberIntervalInSeconds 1 Activator De maximale tijd, in seconden, dat de trigger wacht voordat een niet-lege interne batch wordt verzonden die nog niet is bereikt MaxBatchSize. Deze instelling definieert geen minimuminterval tussen individuele functie-aanroepen.

Note

MaxBatchSize en SubscriberIntervalInSeconds controle over hoe de extensie berichten intern verzamelt. Ze schakelen batchbezorging naar jouw functie niet automatisch in. Bij enkelvoudige bericht-kardinaliteit worden berichten van een interne batch als afzonderlijke functieaanroepen geleverd. Om de berichten in één aanroep te ontvangen, gebruik je een arrayparameter en configureer je batchlevering voor je programmeermodel, zoals IsBatched = true of cardinality stel je in op MANY. Voor voorbeelden, zie Apache Kafka trigger for Azure Functions.

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