Mappages de mise à l’échelle KEDA Azure Functions sur Container Apps

Lorsque vous déployez Azure Functions sur Azure Container Apps, la plateforme convertit automatiquement vos paramètres de déclencheur Functions en configurations de mise à l’échelle KEDA. Cette traduction garantit que vos fonctions sont mises à l’échelle de manière appropriée en fonction de la charge de travail entrante à partir de différentes sources d’événements.

Fonctionnement des mappages de mise à l’échelle

Azure Functions sur Container Apps utilise KEDA pour surveiller les sources d’événements et mettre à l’échelle vos applications de fonction. La plateforme automatiquement :

  1. Convertit les paramètres functions : convertit votre configuration de déclencheur Functions (à partir ou à partir d’attributs de host.json déclencheur) en métadonnées de scaler KEDA.

  2. Applique des règles de mise à l’échelle : utilise les paramètres traduits pour créer des règles de mise à l’échelle KEDA appropriées.

  3. Surveille les événements : KEDA surveille en permanence vos sources d’événements en fonction de ces règles.

  4. Met à l’échelle les instances : met automatiquement à l’échelle vos instances de conteneur vers le haut ou vers le bas en fonction de la charge de travail.

Les sections suivantes détaillent les mappages de paramètres spécifiques pour chaque type de déclencheur.

Paramètres de mise à l’échelle

Les sections suivantes détaillent la façon dont les paramètres de déclencheur Azure Functions correspondent à leurs configurations de scaler KEDA correspondantes pour chaque type de déclencheur pris en charge.

File d’attente de stockage Azure

Le tableau suivant montre comment les paramètres de déclencheur de file d’attente stockage Azure correspondent aux valeurs de configuration du scaler KEDA.

Paramètre Configuration des fonctions KEDA Configuration
nom du paramètre batchSize queueLength
Chemin de configuration extensions.queues.batchSize (host.json) metadata.queueLength
Valeur par défaut 16 5
Description du déclencheur Functions Description du scaler KEDA
Nombre de messages de file d’attente que le runtime Functions récupère et traite en parallèle. Lorsque le nombre en cours de traitement atteint, newBatchThresholdle runtime récupère un autre lot. Le nombre maximal de messages simultanés par fonction est batchSize plus newBatchThreshold. Définissez batchSize la valeur 1 pour éliminer la concurrence, sauf si l’application effectue un scale-out vers plusieurs machines virtuelles. La valeur batchSize maximale est de 32. Valeur cible pour la longueur de file d’attente passée au scaler. Par exemple, si un pod peut gérer 10 messages, définissez la cible de longueur de file d’attente sur 10. Si le nombre réel de messages dans la file d’attente est de 30, le scaler s’adapte à trois pods.

Logique de traduction

metadata.queueLength = extensions.queues.batchSize

Azure Service Bus (répartition unique)

Le tableau suivant montre comment les paramètres de déclencheur Azure Service Bus correspondent aux valeurs de configuration du scaler KEDA.

Paramètre Configuration des fonctions KEDA Configuration
nom du paramètre maxConcurrentCalls messageCount
Chemin de configuration extensions.serviceBus.maxConcurrentCalls (host.json) metadata.messageCount
Valeur par défaut 16 5
Description du déclencheur Functions Description du scaler KEDA
Limite le nombre maximal d’appels simultanés par instance mise à l’échelle. Pour les instances multicœurs, la valeur maximale est multipliée par le nombre de cœurs. Utilisez ce paramètre uniquement lorsque isSessionsEnabled la valeur est false. Nombre de messages actifs dans votre file d’attente ou rubrique Azure Service Bus à mettre à l’échelle.

Logique de traduction

metadata.messageCount = extensions.serviceBus.maxConcurrentCalls

Azure Service Bus (répartiteur unique, basé sur des sessions)

Le tableau suivant montre comment les paramètres de déclencheur Azure Service Bus sont mappés aux valeurs de configuration du scaler KEDA lorsque la isSessionsEnabled valeur est true.

Paramètre Configuration des fonctions KEDA Configuration
nom du paramètre maxConcurrentSessions messageCount
Chemin de configuration extensions.serviceBus.maxConcurrentSessions (host.json) metadata.messageCount
Valeur par défaut 8 5
Description du déclencheur Functions Description du scaler KEDA
Nombre maximal de sessions gérées simultanément par instance mise à l’échelle. Utilisez ce paramètre uniquement lorsque isSessionsEnabled la valeur est true. Nombre de messages actifs dans votre file d’attente ou rubrique Azure Service Bus à mettre à l’échelle.

Logique de traduction

metadata.messageCount = extensions.serviceBus.maxConcurrentSessions

Azure Service Bus (traitement par lots)

Le tableau suivant montre comment les paramètres de déclencheur Azure Service Bus sont mappés aux valeurs de configuration du scaler KEDA pour le traitement par lots.

Paramètre Configuration des fonctions KEDA Configuration
nom du paramètre maxMessageBatchSize messageCount
Chemin de configuration extensions.serviceBus.maxMessageBatchSize (host.json) metadata.messageCount
Valeur par défaut 1 000 5
Description du déclencheur Functions Description du scaler KEDA
Nombre maximal de messages passés à chaque appel de fonction pour le traitement par lots. Nombre de messages actifs dans votre file d’attente ou rubrique Azure Service Bus à mettre à l’échelle.

Logique de traduction

metadata.messageCount = extensions.serviceBus.maxMessageBatchSize

Hubs d'événements Azure

Le tableau suivant montre comment les paramètres de déclencheur Azure Event Hubs sont mappés aux valeurs de configuration du scaler KEDA.

Paramètre Configuration des fonctions KEDA Configuration
nom du paramètre targetUnprocessedEventThreshold unprocessedEventThreshold
Chemin de configuration extensions.eventHubs.targetUnprocessedEventThreshold (host.json) metadata.unprocessedEventThreshold
Valeur par défaut zéro 64
Description du déclencheur Functions Description du scaler KEDA
Nombre souhaité d’événements non traités par instance de fonction. Utilisé pour la mise à l’échelle basée sur la cible. Valeur cible moyenne pour déclencher des actions de mise à l’échelle.

Logique de traduction

metadata.unprocessedEventThreshold = extensions.eventHubs.targetUnprocessedEventThreshold

Apache Kafka

Le tableau suivant montre comment les paramètres de déclencheur Apache Kafka correspondent aux valeurs de configuration du scaler KEDA.

Paramètre Configuration des fonctions KEDA Configuration
nom du paramètre LagThreshold lagThreshold
Chemin de configuration Attribut du déclencheur de fonction metadata.lagThreshold
Valeur par défaut 1 000 10
Description du déclencheur Functions Description du scaler KEDA
Utilisez cette valeur comme exécutions cibles par instance pour le déclencheur Kafka. Le nombre d’instances souhaitées est calculé en fonction du décalage total du consommateur divisé par LagThreshold.
Utilisez cette valeur comme cible pour le décalage total (somme de tous les retards de partition) pour déclencher des actions de mise à l’échelle.

Example

[KafkaTrigger(
  "BrokerList",
  "topic",
  ConsumerGroup = "$Default",
  LagThreshold = 100)]

Logique de traduction

metadata.lagThreshold = LagThreshold

Déclencheur HTTP

Le déclencheur HTTP ne mappe pas à un scaler KEDA. Utilisez plutôt les fonctionnalités de mise à l’échelle HTTP intégrées à Container Apps ou les solutions de supervision externe.