Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.
Selecteer Configuratie in de Azure-portal in uw functie-app.
Selecteer op het tabblad Runtime-instellingen voor Runtime-schaalbewaking de optie 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 | 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 |