Mapování škálování KEDA ve službě Azure Functions v Container Apps

Když nasadíte Azure Functions v Azure Container Apps, platforma automaticky přeloží parametry triggeru služby Functions do konfigurací škálování KEDA. Tento překlad zajistí, že se vaše funkce odpovídajícím způsobem škáluje na základě příchozí úlohy z různých zdrojů událostí.

Jak funguje mapování škálování

Azure Functions v Container Apps používá KEDA k monitorování zdrojů událostí a škálování aplikací funkcí. Platforma automaticky:

  1. Překládá parametry služby Functions: Převede konfiguraci triggeru služby Functions (z host.json atributů nebo atributů triggeru) na metadata škálovače KEDA.

  2. Použije pravidla škálování: Použije přeložené parametry k vytvoření odpovídajících pravidel škálování KEDA.

  3. Monitoruje události: KEDA průběžně monitoruje zdroje událostí na základě těchto pravidel.

  4. Škáluje instance: Automaticky škáluje instance kontejneru nahoru nebo dolů na základě úlohy.

Následující části podrobně uvádějí konkrétní mapování parametrů pro každý typ triggeru.

Parametry škálování

Následující části podrobně popisuje, jak se parametry triggeru Azure Functions mapují na odpovídající konfigurace škálovače KEDA pro každý podporovaný typ triggeru.

Fronta služby Azure Storage

Následující tabulka ukazuje, jak se parametry triggeru fronty služby Azure Storage mapují na konfigurační hodnoty škálování KEDA.

Parameter Konfigurace funkcí Konfigurace KEDA
název parametru batchSize queueLength
Cesta konfigurace extensions.queues.batchSize (host.json) metadata.queueLength
Výchozí hodnota 16 5
Popis triggeru služby Functions Popis škálovače KEDA
Počet zpráv fronty, které modul runtime Služby Functions načítá a zpracovává paralelně. Při zpracování čísla načte newBatchThresholdmodul runtime jinou dávku. Maximální počet souběžných zpráv na funkci je batchSize plus newBatchThreshold. Nastavte batchSize na 1, abyste vyloučili souběžnost, pokud se aplikace škáluje na více virtuálních počítačů. Maximum batchSize je 32. Cílová hodnota pro délku fronty předanou škálovači. Pokud například jeden pod dokáže zpracovat 10 zpráv, nastavte cíl délky fronty na 10. Pokud je skutečný počet zpráv ve frontě 30, škálovací nástroj se škáluje na tři pody.

Logika překladu

metadata.queueLength = extensions.queues.batchSize

Azure Service Bus (jednoúčelové odesílání)

Následující tabulka ukazuje, jak se parametry triggeru služby Azure Service Bus mapují na konfigurační hodnoty škálovače KEDA.

Parameter Konfigurace funkcí Konfigurace KEDA
název parametru maxConcurrentCalls messageCount
Cesta konfigurace extensions.serviceBus.maxConcurrentCalls (host.json) metadata.messageCount
Výchozí hodnota 16 5
Popis triggeru služby Functions Popis škálovače KEDA
Omezuje maximální počet souběžných volání na škálovanou instanci. U instancí s více jádry se maximální počet jader vynásobí počtem jader. Toto nastavení použijte pouze v případě, že isSessionsEnabled je false. Počet aktivních zpráv ve frontě nebo tématu služby Azure Service Bus, na které se má škálovat

Logika překladu

metadata.messageCount = extensions.serviceBus.maxConcurrentCalls

Azure Service Bus (jednoúčelové odesílání, relace)

Následující tabulka ukazuje, jak se parametry triggeru služby Azure Service Bus mapují na konfigurační hodnoty škálování KEDA , pokud isSessionsEnabled je true.

Parameter Konfigurace funkcí Konfigurace KEDA
název parametru maxConcurrentSessions messageCount
Cesta konfigurace extensions.serviceBus.maxConcurrentSessions (host.json) metadata.messageCount
Výchozí hodnota 8 5
Popis triggeru služby Functions Popis škálovače KEDA
Maximální počet relací zpracovávaných souběžně na instanci se škálováním Toto nastavení použijte pouze v případě, že isSessionsEnabled je true. Počet aktivních zpráv ve frontě nebo tématu služby Azure Service Bus, na které se má škálovat

Logika překladu

metadata.messageCount = extensions.serviceBus.maxConcurrentSessions

Azure Service Bus (dávkové zpracování)

Následující tabulka ukazuje, jak se parametry triggeru služby Azure Service Bus mapují na konfigurační hodnoty škálování KEDA pro dávkové zpracování.

Parameter Konfigurace funkcí Konfigurace KEDA
název parametru maxMessageBatchSize messageCount
Cesta konfigurace extensions.serviceBus.maxMessageBatchSize (host.json) metadata.messageCount
Výchozí hodnota 1 000 5
Popis triggeru služby Functions Popis škálovače KEDA
Maximální počet zpráv předaných jednotlivým voláním funkce pro dávkové zpracování. Počet aktivních zpráv ve frontě nebo tématu služby Azure Service Bus, na které se má škálovat

Logika překladu

metadata.messageCount = extensions.serviceBus.maxMessageBatchSize

Azure Event Hubs

Následující tabulka ukazuje, jak se parametry triggeru služby Azure Event Hubs mapují na konfigurační hodnoty škálování KEDA.

Parameter Konfigurace funkcí Konfigurace KEDA
název parametru targetUnprocessedEventThreshold unprocessedEventThreshold
Cesta konfigurace extensions.eventHubs.targetUnprocessedEventThreshold (host.json) metadata.unprocessedEventThreshold
Výchozí hodnota null 64
Popis triggeru služby Functions Popis škálovače KEDA
Požadovaný počet nezpracovaných událostí na instanci funkce Používá se pro škálování na základě cílů. Průměrná cílová hodnota pro aktivaci akcí škálování

Logika překladu

metadata.unprocessedEventThreshold = extensions.eventHubs.targetUnprocessedEventThreshold

Apache Kafka

Následující tabulka ukazuje, jak se parametry triggeru Apache Kafka mapují na konfigurační hodnoty škálování KEDA.

Parameter Konfigurace funkcí Konfigurace KEDA
název parametru LagThreshold lagThreshold
Cesta konfigurace Atribut triggeru funkce metadata.lagThreshold
Výchozí hodnota 1 000 10
Popis triggeru služby Functions Popis škálovače KEDA
Tuto hodnotu použijte jako cílové spuštění pro instanci triggeru Kafka. Početpožadovaných LagThreshold
Tuto hodnotu použijte jako cíl pro celkovou prodlevu (součet všech prodlev oddílů) a aktivujte akce škálování.

Example

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

Logika překladu

metadata.lagThreshold = LagThreshold

HTTP spouštěč

Trigger HTTP se nemapuje na škálovač KEDA. Místo toho použijte integrované funkce škálování HTTP container Apps nebo externí řešení monitorování.