Ö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 På.
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 host.json-filen 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 |