Condividi tramite


Mapping di ridimensionamento KEDA di Funzioni di Azure nelle app contenitore

Quando si distribuisce Funzioni di Azure in App Azure Container, la piattaforma converte automaticamente i parametri del trigger di Funzioni in configurazioni di ridimensionamento KEDA. Questa conversione garantisce che le funzioni siano ridimensionate in modo appropriato in base al carico di lavoro in ingresso da varie origini eventi.

Funzionamento dei mapping di ridimensionamento

Funzioni di Azure nelle app contenitore usa KEDA per monitorare le origini eventi e ridimensionare le app per le funzioni. La piattaforma viene eseguita automaticamente:

  1. Converte i parametri di Funzioni: converte la configurazione del trigger di Funzioni (da host.json o attributi trigger) in metadati del scaler KEDA.

  2. Applica le regole di ridimensionamento: usa i parametri tradotti per creare regole di ridimensionamento KEDA appropriate.

  3. Monitora gli eventi: KEDA monitora continuamente le origini eventi in base a queste regole.

  4. Ridimensiona le istanze: ridimensiona automaticamente le istanze del contenitore in base al carico di lavoro.

Le sezioni seguenti illustrano in dettaglio i mapping dei parametri specifici per ogni tipo di trigger.

Parametri di ridimensionamento

Le sezioni seguenti illustrano in dettaglio il mapping dei parametri del trigger di Funzioni di Azure alle configurazioni di scala KEDA corrispondenti per ogni tipo di trigger supportato.

Coda di archiviazione di Azure

La tabella seguente illustra il mapping dei parametri del trigger della coda di archiviazione di Azure ai valori di configurazione del scaler KEDA.

Parametro Configurazione di Funzioni Configurazione KEDA
nome del parametro batchSize queueLength
Percorso di configurazione extensions.queues.batchSize (host.json) metadata.queueLength
Valore predefinito 16 5
Descrizione del trigger di Funzioni Descrizione del scaler KEDA
Numero di messaggi in coda recuperati dal runtime di Funzioni ed elaborati in parallelo. Quando il numero elaborato raggiunge , newBatchThresholdil runtime recupera un altro batch. Il numero massimo di messaggi simultanei per funzione è batchSize più newBatchThreshold. Impostare batchSize su 1 per eliminare la concorrenza a meno che l'app non venga ridimensionata in più macchine virtuali. Il valore massimo per batchSize è 32. Valore di destinazione per la lunghezza della coda passato al scaler. Ad esempio, se un pod può gestire 10 messaggi, impostare la lunghezza della coda su 10. Se il numero effettivo di messaggi nella coda è 30, il ridimensionatore viene ridimensionato su tre pod.

Logica di traduzione

metadata.queueLength = extensions.queues.batchSize

Bus di servizio di Azure (invio singolo)

La tabella seguente illustra il mapping dei parametri del trigger del bus di servizio di Azure ai valori di configurazione del scaler KEDA.

Parametro Configurazione di Funzioni Configurazione KEDA
nome del parametro maxConcurrentCalls messageCount
Percorso di configurazione extensions.serviceBus.maxConcurrentCalls (host.json) metadata.messageCount
Valore predefinito 16 5
Descrizione del trigger di Funzioni Descrizione del scaler KEDA
Limita il numero massimo di chiamate simultanee per ogni istanza ridimensionata. Per le istanze multicore, il valore massimo viene moltiplicato per il numero di core. Usare questa impostazione solo quando isSessionsEnabled è false. Numero di messaggi attivi nella coda o nell'argomento del bus di servizio di Azure su cui eseguire la scalabilità.

Logica di traduzione

metadata.messageCount = extensions.serviceBus.maxConcurrentCalls

Bus di servizio di Azure (basato su sessioni)

La tabella seguente illustra il mapping dei parametri dei trigger di Hub eventi di Azure ai valori di configurazione del scaler KEDA.

Parametro Configurazione di Funzioni Configurazione KEDA
nome del parametro maxMessageBatchSize messageCount
Percorso di configurazione extensions.serviceBus.maxMessageBatchSize (host.json) metadata.messageCount
Valore predefinito 1000 5
Descrizione del trigger di Funzioni Descrizione del scaler KEDA
Numero massimo di messaggi passati a ogni chiamata di funzione per l'elaborazione batch. Numero di messaggi attivi nella coda o nell'argomento del bus di servizio di Azure su cui eseguire la scalabilità.

Logica di traduzione

metadata.messageCount = extensions.serviceBus.maxMessageBatchSize

Hub eventi di Azure

La tabella seguente illustra il mapping dei parametri dei trigger di Hub eventi di Azure ai valori di configurazione del scaler KEDA.

Parametro Configurazione di Funzioni Configurazione KEDA
nome del parametro targetUnprocessedEventThreshold unprocessedEventThreshold
Percorso di configurazione extensions.eventHubs.targetUnprocessedEventThreshold (host.json) metadata.unprocessedEventThreshold
Valore predefinito nullo 64
Descrizione del trigger di Funzioni Descrizione del scaler KEDA
Numero desiderato di eventi non elaborati per ogni istanza di funzione. Usato per il ridimensionamento basato sulla destinazione. Valore medio di destinazione per attivare le azioni di ridimensionamento.

Logica di traduzione

metadata.unprocessedEventThreshold = extensions.eventHubs.targetUnprocessedEventThreshold

Apache Kafka

La tabella seguente illustra il mapping dei parametri del trigger Apache Kafka ai valori di configurazione del scaler KEDA.

Parametro Configurazione di Funzioni Configurazione KEDA
nome del parametro LagThreshold lagThreshold
Percorso di configurazione Attributo trigger di funzione metadata.lagThreshold
Valore predefinito 1000 10
Descrizione del trigger di Funzioni Descrizione del scaler KEDA
Usare questo valore come esecuzioni di destinazione per istanza per il trigger Kafka. Il numero di istanze desiderate viene calcolato in base al ritardo totale del consumer diviso per LagThreshold.
Usare questo valore come destinazione per il ritardo totale (somma di tutti i ritardi di partizione) per attivare le azioni di ridimensionamento.

Example

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

Logica di traduzione

metadata.lagThreshold = LagThreshold

Azure Cosmos DB, un servizio di database distribuito globale di Microsoft

Il trigger di Azure Cosmos DB non esegue il mapping a un scaler KEDA. Usare invece il ridimensionamento personalizzato.

Il trigger funzioni imposta il numero massimo di elementi ricevuti per ogni chiamata di funzione. L'ambito delle transazioni viene mantenuto per le stored procedure.

Parametro Configurazione di Funzioni Configurazione KEDA
nome del parametro MaxItemsPerInvocation N/A
Percorso di configurazione Attributo trigger di funzione N/A
Valore predefinito 100 N/A

Example

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

Trigger HTTP

Il trigger HTTP non esegue il mapping a un scaler KEDA. Usare invece le funzionalità di scalabilità HTTP predefinite di App contenitore o soluzioni di monitoraggio esterne.

Parametro Configurazione di Funzioni Configurazione KEDA
nome del parametro maxConcurrentRequests N/A
Percorso di configurazione extensions.http.maxConcurrentRequests (host.json) N/A
Valore predefinito 100 (consumo), -1 (Premium/Dedicato) N/A

Trigger di archiviazione BLOB

La tabella seguente illustra il mapping dei parametri del trigger di Archiviazione BLOB di Azure ai valori di configurazione del scaler KEDA.

Parametro Configurazione di Funzioni Configurazione KEDA
nome del parametro maxDegreeOfParallelism blobCount
Percorso di configurazione extensions.blobs.maxDegreeOfParallelism (host.json) metadata.blobCount
Valore predefinito 8 × numero di core disponibili 5
Descrizione del trigger di Funzioni Descrizione del scaler KEDA
Imposta il numero di chiamate simultanee consentite per tutte le funzioni attivate da BLOB in un'app per le funzioni. Valore minimo: 1. Valore medio di destinazione per attivare le azioni di ridimensionamento. (Impostazione predefinita: 5, Facoltativo)

Logica di traduzione

metadata.blobCount = extensions.blobs.maxDegreeOfParallelism

Event Grid

I parametri del trigger di Griglia di eventi di Azure non eseguono il mapping a un scaler KEDA.

Il trigger di Griglia di eventi usa una richiesta HTTP webhook. Per configurare questa richiesta, usare le stesse host.json impostazioni del trigger HTTP. Queste impostazioni controllano l'esecuzione parallela per la gestione delle risorse.

Trigger RabbitMQ

Nella tabella seguente viene illustrato il mapping dei parametri trigger RabbitMQ ai valori di configurazione del scaler KEDA.

Parametro Configurazione di Funzioni Configurazione KEDA
nome del parametro prefetchCount value
Percorso di configurazione extensions.rabbitMQ.prefetchCount (host.json) metadata.value
Valore predefinito 30 100.50
Descrizione del trigger di Funzioni Descrizione del scaler KEDA
Numero di messaggi che il ricevitore può richiedere e memorizzare nella cache contemporaneamente. Backlog dei messaggi o frequenza di pubblicazione/sec per attivare il ridimensionamento. In modalità QueueLength il valore rappresenta la lunghezza della coda di destinazione per il ridimensionamento.

Logica di traduzione

metadata.value = extensions.rabbitMQ.prefetchCount