Vue d’ensemble des liaisons Apache Kafka pour Azure Functions

L’extension Kafka pour Azure Functions vous permet d’écrire des valeurs dans des rubriques Apache Kafka à l’aide d’une liaison de sortie. Vous pouvez également utiliser un déclencheur pour appeler vos fonctions en réponse aux messages dans les rubriques Kafka.

Important

Les liaisons Kafka sont disponibles uniquement pour les fonctions sur le plan Elastic Premium et le plan (App Service) dédié. Elles sont uniquement prises en charge sur la version 3.x et la version ultérieure du runtime Functions.

Action Type
Exécutez une fonction en fonction d’un nouvel événement Kafka. Déclencheur
Écrivez dans le flux d’événements Kafka. Liaison de sortie

Installer l’extension

Le package NuGet de l’extension que vous installez dépend du mode C# que vous utilisez dans votre application de fonction :

Les fonctions s’exécutent dans un processus de travail C# isolé. Pour en savoir plus, consultez Guide pour l’exécution d’Azure Functions C# dans un processus Worker isolé.

Ajoutez l’extension à votre projet en installant ce package NuGet.

Installer le bundle

L’extension Kafka fait partie d’un bundle d’extensions, qui est spécifié dans votre fichier projet host.json. Lorsque vous créez un projet qui cible Functions version 3.x ou une version ultérieure, ce pack doit déjà être installé. Pour plus d’informations, consultez le bundle d’extensions.

Activer la mise à l’échelle du runtime

Pour permettre à vos fonctions de mettre à l’échelle correctement sur le plan Premium lors de l’utilisation des déclencheurs et des liaisons Kafka, vous devez activer la surveillance de l’échelle du runtime.

Dans le portail Azure, dans votre application de fonction, choisissez Configuration et sous l’onglet Paramètres du runtime de fonction, passez la Surveillance de l’échelle du runtime sur Activée.

Capture d’écran du volet du portail Azure permettant d’activer la mise à l’échelle du runtime.

Paramètres host.json

Cette section décrit les paramètres de configuration disponibles pour cette liaison dans les versions 3.x et ultérieures. Les paramètres dans le fichier host.json s’appliquent à toutes les fonctions dans une instance de l’application de fonction. Pour plus d’informations sur les paramètres de configuration de l’application de fonction dans les versions 3.x et ultérieures, consultez Référence host.json pour Azure Functions.

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

Propriété Default Type Description
ChannelFullRetryIntervalInMs 50 Déclencheur Définit l’intervalle avant nouvelle tentative de l’abonné, en millisecondes, utilisé lors de la tentative d’ajout d’éléments à un canal à capacité.
ExecutorChannelCapacity 1 Les deux Définit la capacité de message de canal. Une fois la capacité atteinte, l’abonné Kafka s’interrompt jusqu’à ce que la fonction se rattrape.
MaxBatchSize 64 Déclencheur Taille de lot maximale lors de l’appel d’une fonction déclenchée par Kafka.
SubscriberIntervalInSeconds 1 Déclencheur Définit la fréquence minimale d’exécution des messages entrants par fonction en secondes. Uniquement lorsque le volume du message est inférieur à MaxBatchSize / SubscriberIntervalInSeconds

Les propriétés suivantes, héritées de la bibliothèque cliente C/C++ Apache Kafka, sont également prises en charge dans la section kafka host.json, pour les déclencheurs ou les liaisons de sortie et les déclencheurs :

Propriété S’applique à équivalent librdkafka
AutoCommitIntervalMs Déclencheur auto.commit.interval.ms
AutoOffsetReset Déclencheur auto.offset.reset
FetchMaxBytes Déclencheur fetch.max.bytes
LibkafkaDebug Les deux debug
MaxPartitionFetchBytes Déclencheur max.partition.fetch.bytes
MaxPollIntervalMs Déclencheur max.poll.interval.ms
MetadataMaxAgeMs Les deux metadata.max.age.ms
QueuedMinMessages Déclencheur queued.min.messages
QueuedMaxMessagesKbytes Déclencheur queued.max.messages.kbytes
ReconnectBackoffMs Déclencheur reconnect.backoff.max.ms
ReconnectBackoffMaxMs Déclencheur reconnect.backoff.max.ms
SessionTimeoutMs Déclencheur session.timeout.ms
SocketKeepaliveEnable Les deux socket.keepalive.enable
StatisticsIntervalMs Déclencheur statistics.interval.ms

Étapes suivantes