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