Översikt över Apache Kafka-bindningar för Azure Functions

Med Kafka-tillägget för Azure Functions kan du skriva ut värden till Apache Kafka-ämnen med hjälp av en utdatabindning. Du kan också använda en utlösare för att anropa dina funktioner som svar på meddelanden i Kafka-ämnen.

Viktigt!

Kafka-bindningar är endast tillgängliga för Functions i planen Elastic Premium Plan and Dedicated (App Service). De stöds endast på version 3.x och senare version av Functions-körningen.

Åtgärd Typ
Kör en funktion baserat på en ny Kafka-händelse. Utlösare
Skriv till Kafka-händelseströmmen. Utdatabindning

Installera tillägget

Vilket NuGet-tilläggspaket du installerar beror på vilket C#-läge du använder i funktionsappen:

Funktioner körs i en isolerad C#-arbetsprocess. Mer information finns i Guide för att köra C# Azure Functions i en isolerad arbetsprocess.

Lägg till tillägget i projektet genom att installera det här NuGet-paketet.

Installera paket

Kafka-tillägget är en del av ett tilläggspaket som anges i din host.json-projektfil. När du skapar ett projekt som riktar sig till Functions version 3.x eller senare bör du redan ha det här paketet installerat. Mer information finns i tilläggspaketet.

Aktivera körningsskalning

För att dina funktioner ska kunna skalas korrekt på Premium-planen när du använder Kafka-utlösare och bindningar måste du aktivera övervakning av körningsskala.

I Azure-portalen går du till funktionsappen och väljer Konfiguration och på fliken Funktionskörningsinställningar aktiverar du Körningsskalningsövervakning till .

Skärmbild av Panelen i Azure-portalen för att aktivera körningsskalning.

host.json inställningar

I det här avsnittet beskrivs de konfigurationsinställningar som är tillgängliga för den här bindningen i version 3.x och senare. Inställningar i filen host.json gäller för alla funktioner i en funktionsappinstans. Mer information om konfigurationsinställningar för funktionsappar i version 3.x och senare versioner finns i host.json referens för Azure Functions.

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

Property Standardvärde Typ Beskrivning
ChannelFullRetryIntervalInMs 50 Utlösare Definierar omförsöksintervallet för prenumeranter, i millisekunder, som används vid försök att lägga till objekt i en kanal med kapacitet.
ExecutorChannelCapacity 1 Båda Definierar kanalmeddelandekapaciteten. När kapaciteten har nåtts pausar Kafka-prenumeranten tills funktionen kommer ikapp.
MaxBatchSize 64 Utlösare Maximal batchstorlek när du anropar en Kafka-utlöst funktion.
SubscriberIntervalInSeconds 1 Utlösare Definierar den minsta frekvens som inkommande meddelanden körs per funktion i sekunder. Endast när meddelandevolymen är mindre än MaxBatchSize / SubscriberIntervalInSeconds

Följande egenskaper, som ärvs från Apache Kafka C/C++-klientbiblioteket, stöds också i avsnittet i kafka host.json för antingen utlösare eller både utdatabindningar och utlösare:

Property Gäller för librdkafka motsvarande
AutoCommitIntervalMs Utlösare auto.commit.interval.ms
AutoOffsetReset Utlösare auto.offset.reset
FetchMaxBytes Utlösare fetch.max.bytes
LibkafkaDebug Båda debug
MaxPartitionFetchBytes Utlösare max.partition.fetch.bytes
MaxPollIntervalMs Utlösare max.poll.interval.ms
MetadataMaxAgeMs Båda metadata.max.age.ms
QueuedMinMessages Utlösare queued.min.messages
QueuedMaxMessagesKbytes Utlösare queued.max.messages.kbytes
ÅteranslutBackoffMs Utlösare reconnect.backoff.max.ms
ÅteranslutBackoffMaxMs Utlösare reconnect.backoff.max.ms
SessionTimeoutMs Utlösare session.timeout.ms
SocketKeepaliveEnable Båda socket.keepalive.enable
StatisticsIntervalMs Utlösare statistics.interval.ms

Nästa steg