Sdílet prostřednictvím


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 (založené na relacích)

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

Azure Cosmos DB

Trigger služby Azure Cosmos DB se nemapuje na škálovací modul KEDA. Místo toho použijte vlastní škálování.

Trigger Functions nastaví maximální počet přijatých položek na volání funkce. Obor transakce je zachován pro uložené procedury.

Parameter Konfigurace funkcí Konfigurace KEDA
název parametru MaxItemsPerInvocation N/A
Cesta konfigurace Atribut triggeru funkce N/A
Výchozí hodnota 100 N/A

Example

[CosmosDBTrigger(
  databaseName: "ToDoItems",
  containerName: "Items",
  Connection = "CosmosDBConnection",
  MaxItemsPerInvocation = 100)]

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

Parameter Konfigurace funkcí Konfigurace KEDA
název parametru maxConcurrentRequests N/A
Cesta konfigurace extensions.http.maxConcurrentRequests (host.json) N/A
Výchozí hodnota 100 (Spotřeba), -1 (Premium/Dedicated) N/A

Spouštěč úložiště Blob

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

Parameter Konfigurace funkcí Konfigurace KEDA
název parametru maxDegreeOfParallelism blobCount
Cesta konfigurace extensions.blobs.maxDegreeOfParallelism (host.json) metadata.blobCount
Výchozí hodnota 8 × počet dostupných jader 5
Popis triggeru služby Functions Popis škálovače KEDA
Nastaví počet souběžných vyvolání povolených pro všechny funkce aktivované objekty blob v aplikaci funkcí. Minimální hodnota: 1. Průměrná cílová hodnota pro aktivaci akcí škálování (Výchozí hodnota: 5, volitelné)

Logika překladu

metadata.blobCount = extensions.blobs.maxDegreeOfParallelism

Event Grid

Parametry triggeru služby Azure Event Grid se nemapují na škálovač KEDA.

Trigger Služby Event Grid používá požadavek HTTP webhooku. Tento požadavek nakonfigurujete pomocí stejného host.json nastavení jako trigger HTTP. Tato nastavení řídí paralelní spouštění pro správu prostředků.

Trigger RabbitMQ

Následující tabulka ukazuje, jak se parametry triggeru RabbitMQ mapují na konfigurační hodnoty škálovače KEDA.

Parameter Konfigurace funkcí Konfigurace KEDA
název parametru prefetchCount value
Cesta konfigurace extensions.rabbitMQ.prefetchCount (host.json) metadata.value
Výchozí hodnota 30 100.50
Popis triggeru služby Functions Popis škálovače KEDA
Počet zpráv, které příjemce může současně požádat a uložit do mezipaměti Backlog zpráv nebo míra publikování/s pro aktivaci škálování V režimu QueueLength představuje hodnota cílovou délku fronty pro škálování.

Logika překladu

metadata.value = extensions.rabbitMQ.prefetchCount