Dela via


Azure Functions KEDA-skalningsmappningar i Container Apps

När du distribuerar Azure Functions i Azure Container Apps översätter plattformen automatiskt dina Functions-utlösarparametrar till KEDA-skalningskonfigurationer. Den här översättningen säkerställer att dina funktioner skalas korrekt baserat på den inkommande arbetsbelastningen från olika händelsekällor.

Så här fungerar skalningsmappningar

Azure Functions i Container Apps använder KEDA för att övervaka händelsekällor och skala dina funktionsappar. Plattformen:

  1. Översätter Functions-parametrar: Konverterar konfigurationen av Functions-utlösaren (från host.json eller utlösarattribut) till KEDA-skalningsmetadata.

  2. Tillämpar skalningsregler: Använder de översatta parametrarna för att skapa lämpliga KEDA-skalningsregler.

  3. Övervakar händelser: KEDA övervakar kontinuerligt dina händelsekällor baserat på dessa regler.

  4. Skalar instanser: Skalar automatiskt upp eller ned dina containerinstanser baserat på arbetsbelastning.

I följande avsnitt beskrivs de specifika parametermappningarna för varje utlösartyp.

Skalningsparametrar

I följande avsnitt beskrivs hur Azure Functions-utlösarparametrar mappas till motsvarande KEDA-skalningskonfigurationer för varje utlösartyp som stöds.

Azure Storage-kö

Följande tabell visar hur Azure Storage Queue-utlösarparametrar mappas till KEDA-skalningskonfigurationsvärdena.

Parameter Funktionskonfiguration KEDA-konfiguration
Parameternamn batchSize queueLength
Konfigurationssökväg extensions.queues.batchSize (host.json) metadata.queueLength
Standardvärde 16 5
Beskrivning av funktionsutlösare Beskrivning av KEDA-skalning
Antalet kömeddelanden som Functions-körningen hämtar och bearbetar parallellt. När talet som bearbetas newBatchThresholdnår hämtar körningen en annan batch. Det maximala antalet samtidiga meddelanden per funktion är batchSize plus newBatchThreshold. Ange batchSize till 1 för att eliminera samtidighet om inte appen skalar ut till flera virtuella datorer. Maxvärdet batchSize är 32. Målvärde för kölängd som skickas till skalningsmaskinen. Om en podd till exempel kan hantera 10 meddelanden anger du målet för kölängd till 10. Om det faktiska antalet meddelanden i kön är 30 skalas skalningsenheten till tre poddar.

Översättningslogik

metadata.queueLength = extensions.queues.batchSize

Azure Service Bus (enkel sändning)

I följande tabell visas hur Azure Service Bus-utlösarparametrar mappas till konfigurationsvärdena för KEDA-skalning.

Parameter Funktionskonfiguration KEDA-konfiguration
Parameternamn maxConcurrentCalls messageCount
Konfigurationssökväg extensions.serviceBus.maxConcurrentCalls (host.json) metadata.messageCount
Standardvärde 16 5
Beskrivning av funktionsutlösare Beskrivning av KEDA-skalning
Begränsar det maximala antalet samtidiga anrop per skalad instans. För multicore-instanser multipliceras maxvärdet med antalet kärnor. Använd endast den här inställningen när isSessionsEnabled är false. Antal aktiva meddelanden i Din Azure Service Bus-kö eller ditt ämne att skala på.

Översättningslogik

metadata.messageCount = extensions.serviceBus.maxConcurrentCalls

Azure Service Bus (sessionsbaserad)

Följande tabell visar hur Azure Event Hubs-utlösarparametrar mappas till KEDA-skalningskonfigurationsvärdena.

Parameter Funktionskonfiguration KEDA-konfiguration
Parameternamn maxMessageBatchSize messageCount
Konfigurationssökväg extensions.serviceBus.maxMessageBatchSize (host.json) metadata.messageCount
Standardvärde 1 000 5
Beskrivning av funktionsutlösare Beskrivning av KEDA-skalning
Maximalt antal meddelanden som skickas till varje funktionsanrop för batchbearbetning. Antal aktiva meddelanden i Din Azure Service Bus-kö eller ditt ämne att skala på.

Översättningslogik

metadata.messageCount = extensions.serviceBus.maxMessageBatchSize

Azure Event Hubs

Följande tabell visar hur Azure Event Hubs-utlösarparametrar mappas till KEDA-skalningskonfigurationsvärdena.

Parameter Funktionskonfiguration KEDA-konfiguration
Parameternamn targetUnprocessedEventThreshold unprocessedEventThreshold
Konfigurationssökväg extensions.eventHubs.targetUnprocessedEventThreshold (host.json) metadata.unprocessedEventThreshold
Standardvärde noll 64
Beskrivning av funktionsutlösare Beskrivning av KEDA-skalning
Önskat antal obearbetade händelser per funktionsinstans. Används för målbaserad skalning. Genomsnittligt målvärde för att utlösa skalningsåtgärder.

Översättningslogik

metadata.unprocessedEventThreshold = extensions.eventHubs.targetUnprocessedEventThreshold

Apache Kafka

Följande tabell visar hur Apache Kafka-utlösarparametrar mappas till KEDA-skalningskonfigurationsvärdena.

Parameter Funktionskonfiguration KEDA-konfiguration
Parameternamn LagThreshold lagThreshold
Konfigurationssökväg Funktionsutlösarattribut metadata.lagThreshold
Standardvärde 1 000 10
Beskrivning av funktionsutlösare Beskrivning av KEDA-skalning
Använd det här värdet som målkörningar per instans för Kafka-utlösaren. Antalet önskade instanser beräknas baserat på den totala konsumentfördröjningen dividerat med LagThreshold.
Använd det här värdet som mål för den totala fördröjningen (summan av alla partitionsfördröjningar) för att utlösa skalningsåtgärder.

Example

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

Översättningslogik

metadata.lagThreshold = LagThreshold

Azure Cosmos DB

Azure Cosmos DB-utlösaren mappas inte till en KEDA-skalning. Använd anpassad skalning i stället.

Functions-utlösaren anger det maximala antalet objekt som tas emot per funktionsanrop. Transaktionsomfånget bevaras för lagrade procedurer.

Parameter Funktionskonfiguration KEDA-konfiguration
Parameternamn MaxItemsPerInvocation N/A
Konfigurationssökväg Funktionsutlösarattribut N/A
Standardvärde 100 N/A

Example

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

HTTP-utlösare

HTTP-utlösaren mappas inte till en KEDA-skalning. Använd i stället inbyggda HTTP-skalningsfunktioner eller externa övervakningslösningar i Container Apps.

Parameter Funktionskonfiguration KEDA-konfiguration
Parameternamn maxConcurrentRequests N/A
Konfigurationssökväg extensions.http.maxConcurrentRequests (host.json) N/A
Standardvärde 100 (förbrukning), -1 (Premium/Dedikerad) N/A

Bloblagringsutlösare

Följande tabell visar hur Azure Blob Storage-utlösarparametrar mappas till konfigurationsvärdena för KEDA-skalning.

Parameter Funktionskonfiguration KEDA-konfiguration
Parameternamn maxDegreeOfParallelism blobCount
Konfigurationssökväg extensions.blobs.maxDegreeOfParallelism (host.json) metadata.blobCount
Standardvärde 8 × antal tillgängliga kärnor 5
Beskrivning av funktionsutlösare Beskrivning av KEDA-skalning
Anger antalet samtidiga anrop som tillåts för alla blobutlösta funktioner i en funktionsapp. Minsta värde: 1. Genomsnittligt målvärde för att utlösa skalningsåtgärder. (Standard: 5, valfritt)

Översättningslogik

metadata.blobCount = extensions.blobs.maxDegreeOfParallelism

Event Grid

Azure Event Grid-utlösarparametrarna mappas inte till en KEDA-skalning.

Event Grid-utlösaren använder en WEBHOOK HTTP-begäran. Du konfigurerar den här begäran med samma host.json inställningar som HTTP-utlösaren. De här inställningarna styr parallell körning för resurshantering.

RabbitMQ-utlösare

Följande tabell visar hur RabbitMQ-utlösarparametrar mappas till konfigurationsvärdena för KEDA-skalning.

Parameter Funktionskonfiguration KEDA-konfiguration
Parameternamn prefetchCount value
Konfigurationssökväg extensions.rabbitMQ.prefetchCount (host.json) metadata.value
Standardvärde 30 100.50
Beskrivning av funktionsutlösare Beskrivning av KEDA-skalning
Antal meddelanden som mottagaren kan begära och cachelagrat samtidigt. Meddelande eftersläpning eller publicering/sek-hastighet för att utlösa skalning. I QueueLength-läge representerar värdet målkölängden för skalning.

Översättningslogik

metadata.value = extensions.rabbitMQ.prefetchCount