Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 pour Functions sur le plan Flex Consumption, Elastic Premium Plan et Le plan Dédié (App Service). Elles ne sont prises en charge que sur la version 4.x du runtime Functions.
| Action | Catégorie |
|---|---|
| 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
Pour pouvoir utiliser cette extension de liaison dans votre application, assurez-vous que le fichier host.json à la racine de votre projet contient cette extensionBundle référence :
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
Dans cet exemple, la version valeur de [4.0.0, 5.0.0) l’hôte Functions indique à l’hôte Functions d’utiliser une version groupée qui est au moins 4.0.0 mais inférieure à , qui inclut toutes les versions potentielles 5.0.0de 4.x. Cette notation gère efficacement votre application sur la dernière version mineure disponible de l’offre groupée d’extensions v4.x.
Si possible, vous devez utiliser la dernière version principale de l’offre groupée d’extensions et autoriser le runtime à gérer automatiquement la dernière version mineure. Vous pouvez afficher le contenu de la dernière offre groupée sur la page de publication des offres groupées d’extensions. Pour plus d’informations, consultez les bundles d’extensions Azure Functions.
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, sélectionnez Configuration.
Sous l’onglet Paramètres du runtime de fonction , pour l’analyse de l’échelle du runtime, sélectionnez Activé.
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é | Par défaut | Catégorie | Descriptif |
|---|---|---|---|
| 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 | Le nombre maximal de messages collectés dans un lot interne avant l’expédition des messages. Cette valeur est une limite supérieure, pas une taille minimale de lot. |
| SubscriberIntervalInSeconds | 1 | Déclencheur | Le temps maximal, en secondes, que le déclencheur attend avant d’envoyer un lot interne non vide qui n’a pas atteint MaxBatchSize. Ce réglage ne définit pas d’intervalle minimum entre les invocations individuelles de fonctions. |
Note
MaxBatchSize et SubscriberIntervalInSeconds contrôler la manière dont l’extension collecte les messages en interne. Ils n’activent pas automatiquement la livraison par lots à votre fonction. Avec la cardinalité d’un seul message, les messages d’un lot interne sont livrés sous forme d’invocations de fonction séparées. Pour recevoir les messages dans une seule invocation, utilisez un paramètre tableau et configurez la livraison par lots pour votre modèle de programmation, comme IsBatched = true ou cardinality réglez sur MANY. Pour des exemples, voir Apache Kafka trigger pour Azure Functions.
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 |