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.
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 | 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 |