Delen via


Azure Functions KEDA-schaaltoewijzingen in Container Apps

Wanneer u Azure Functions implementeert in Azure Container Apps, worden uw Functions-triggerparameters automatisch omgezet in KEDA-schaalconfiguraties. Deze vertaling zorgt ervoor dat uw Functies op de juiste wijze worden geschaald op basis van de binnenkomende workload van verschillende gebeurtenisbronnen.

Hoe schaaltoewijzingen werken

Azure Functions in Container Apps maakt gebruik van KEDA om gebeurtenisbronnen te bewaken en uw functie-apps te schalen. Het platform automatisch:

  1. Hiermee worden Functions-parameters omgezet: converteert de configuratie van uw Functions-trigger (van host.json of triggerkenmerken) naar de metagegevens van de KEDA-schaalfunctie.

  2. Past schaalregels toe: hiermee worden de vertaalde parameters gebruikt om de juiste KEDA-schaalregels te maken.

  3. Bewaakt gebeurtenissen: KEDA bewaakt continu uw gebeurtenisbronnen op basis van deze regels.

  4. Exemplaren schalen: schaalt uw containerinstanties automatisch omhoog of omlaag op basis van de workload.

In de volgende secties worden de specifieke parametertoewijzingen voor elk triggertype beschreven.

Parameters schalen

In de volgende secties wordt beschreven hoe parameters van Azure Functions worden toegewezen aan de bijbehorende KEDA-schaalconfiguraties voor elk ondersteund triggertype.

Azure-opslagwachtrij

In de volgende tabel ziet u hoe parameters voor azure Storage-wachtrij worden toegewezen aan de configuratiewaarden van de KEDA-scaler.

Kenmerk Configuratie van functies KEDA-configuratie
parameternaam batchSize queueLength
Configuratiepad extensions.queues.batchSize (host.json) metadata.queueLength
Standaardwaarde 16 5
Beschrijving van de functietrigger Beschrijving van KEDA-scaler
Het aantal wachtrijberichten dat door de Functions-runtime parallel wordt opgehaald en verwerkt. Wanneer het getal dat wordt verwerkt, de newBatchThresholdruntime een andere batch ophaalt. Het maximum aantal gelijktijdige berichten per functie is batchSize plus newBatchThreshold. Ingesteld batchSize op 1 om gelijktijdigheid te elimineren, tenzij de app wordt uitgeschaald naar meerdere VM's. Het maximum batchSize is 32. Doelwaarde voor de wachtrijlengte die is doorgegeven aan de scaler. Als één pod bijvoorbeeld 10 berichten kan verwerken, stelt u het doel van de wachtrijlengte in op 10. Als het werkelijke aantal berichten in de wachtrij 30 is, wordt de schaalschaal naar drie pods geschaald.

Vertaallogica

metadata.queueLength = extensions.queues.batchSize

Azure Service Bus (één verzending)

In de volgende tabel ziet u hoe parameters van Azure Service Bus worden toegewezen aan de configuratiewaarden van de KEDA-schaalfunctie.

Kenmerk Configuratie van functies KEDA-configuratie
parameternaam maxConcurrentCalls messageCount
Configuratiepad extensions.serviceBus.maxConcurrentCalls (host.json) metadata.messageCount
Standaardwaarde 16 5
Beschrijving van de functietrigger Beschrijving van KEDA-scaler
Hiermee beperkt u het maximum aantal gelijktijdige aanroepen per geschaalde instantie. Voor multicore-exemplaren wordt het maximum vermenigvuldigd met het aantal kernen. Gebruik deze instelling alleen als isSessionsEnabled deze onwaar is. Het aantal actieve berichten in uw Azure Service Bus-wachtrij of -onderwerp waarop moet worden geschaald.

Vertaallogica

metadata.messageCount = extensions.serviceBus.maxConcurrentCalls

Azure Service Bus (sessies)

In de volgende tabel ziet u hoe parameters van Azure Event Hubs worden toegewezen aan de configuratiewaarden van de KEDA-scaler.

Kenmerk Configuratie van functies KEDA-configuratie
parameternaam maxMessageBatchSize messageCount
Configuratiepad extensions.serviceBus.maxMessageBatchSize (host.json) metadata.messageCount
Standaardwaarde 1000 5
Beschrijving van de functietrigger Beschrijving van KEDA-scaler
Het maximum aantal berichten dat wordt doorgegeven aan elke functie-aanroep voor batchverwerking. Het aantal actieve berichten in uw Azure Service Bus-wachtrij of -onderwerp waarop moet worden geschaald.

Vertaallogica

metadata.messageCount = extensions.serviceBus.maxMessageBatchSize

Azure Event Hubs

In de volgende tabel ziet u hoe parameters van Azure Event Hubs worden toegewezen aan de configuratiewaarden van de KEDA-scaler.

Kenmerk Configuratie van functies KEDA-configuratie
parameternaam targetUnprocessedEventThreshold unprocessedEventThreshold
Configuratiepad extensions.eventHubs.targetUnprocessedEventThreshold (host.json) metadata.unprocessedEventThreshold
Standaardwaarde Nul 64
Beschrijving van de functietrigger Beschrijving van KEDA-scaler
Gewenst aantal niet-verwerkte gebeurtenissen per functie-exemplaar. Wordt gebruikt voor schaalaanpassing op basis van doel. Gemiddelde doelwaarde voor het activeren van schaalacties.

Vertaallogica

metadata.unprocessedEventThreshold = extensions.eventHubs.targetUnprocessedEventThreshold

Apache Kafka

In de volgende tabel ziet u hoe parameters van Apache Kafka worden toegewezen aan de configuratiewaarden van de KEDA-schaalprogramma.

Kenmerk Configuratie van functies KEDA-configuratie
parameternaam LagThreshold lagThreshold
Configuratiepad Kenmerk functietrigger metadata.lagThreshold
Standaardwaarde 1000 10
Beschrijving van de functietrigger Beschrijving van KEDA-scaler
Gebruik deze waarde als de doeluitvoeringen per exemplaar voor de Kafka-trigger. Het aantal gewenste exemplaren wordt berekend op basis van de totale consumentenvertraging gedeeld door LagThreshold.
Gebruik deze waarde als het doel voor de totale vertraging (som van alle partitievertragingen) om schaalacties te activeren.

Example

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

Vertaallogica

metadata.lagThreshold = LagThreshold

Azure Cosmos DB

De Azure Cosmos DB-trigger wordt niet toegewezen aan een KEDA-schaalset. Gebruik in plaats daarvan aangepast schalen.

Met de Functions-trigger wordt het maximum aantal items ingesteld dat per functie-aanroep is ontvangen. Het transactiebereik blijft behouden voor opgeslagen procedures.

Kenmerk Configuratie van functies KEDA-configuratie
parameternaam MaxItemsPerInvocation N/A
Configuratiepad Kenmerk functietrigger N/A
Standaardwaarde 100 N/A

Example

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

HTTP-trigger

De HTTP-trigger wordt niet toegewezen aan een KEDA-scaler. Gebruik in plaats daarvan de ingebouwde HTTP-schaalmogelijkheden van Container Apps of externe bewakingsoplossingen.

Kenmerk Configuratie van functies KEDA-configuratie
parameternaam maxConcurrentRequests N/A
Configuratiepad extensions.http.maxConcurrentRequests (host.json) N/A
Standaardwaarde 100 (Verbruik), -1 (Premium/Dedicated) N/A

Blob-opslagtrigger

In de volgende tabel ziet u hoe parameters van Azure Blob Storage worden toegewezen aan de configuratiewaarden van de KEDA-schaalder.

Kenmerk Configuratie van functies KEDA-configuratie
parameternaam maxDegreeOfParallelism blobCount
Configuratiepad extensions.blobs.maxDegreeOfParallelism (host.json) metadata.blobCount
Standaardwaarde 8 × aantal beschikbare kernen 5
Beschrijving van de functietrigger Beschrijving van KEDA-scaler
Hiermee stelt u het aantal gelijktijdige aanroepen in dat is toegestaan voor alle door blob geactiveerde functies in een functie-app. Minimumwaarde: 1. Gemiddelde doelwaarde voor het activeren van schaalacties. (Standaard: 5, Optioneel)

Vertaallogica

metadata.blobCount = extensions.blobs.maxDegreeOfParallelism

Event Grid

De Triggerparameters van Azure Event Grid worden niet toegewezen aan een KEDA-schaalset.

De Event Grid-trigger maakt gebruik van een HTTP-aanvraag voor een webhook. U configureert deze aanvraag met behulp van dezelfde host.json instellingen als de HTTP-trigger. Deze instellingen bepalen parallelle uitvoering voor resourcebeheer.

RabbitMQ-trigger

In de volgende tabel ziet u hoe RabbitMQ parameters worden toegewezen aan de configuratiewaarden van de KEDA-schaalprogramma.

Kenmerk Configuratie van functies KEDA-configuratie
parameternaam prefetchCount value
Configuratiepad extensions.rabbitMQ.prefetchCount (host.json) metadata.value
Standaardwaarde 30 100.50
Beschrijving van de functietrigger Beschrijving van KEDA-scaler
Het aantal berichten dat de ontvanger tegelijk kan aanvragen en cachen. Achterstand van berichten of publicatie per seconde om schaalaanpassing te activeren. In de queueLength-modus vertegenwoordigt de waarde de lengte van de doelwachtrij voor schalen.

Vertaallogica

metadata.value = extensions.rabbitMQ.prefetchCount