Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Al implementar Azure Functions en Azure Container Apps, la plataforma convierte automáticamente los parámetros del desencadenador de Functions en configuraciones de escalado keDA. Esta traducción garantiza que las funciones se escalen correctamente en función de la carga de trabajo entrante de varios orígenes de eventos.
Funcionamiento de las asignaciones de escalado
Azure Functions en Container Apps usa KEDA para supervisar los orígenes de eventos y escalar las aplicaciones de funciones. La plataforma se realiza automáticamente:
Traduce parámetros de Functions: convierte la configuración del desencadenador de Functions (de
host.jsono atributos de desencadenador) en metadatos del escalador KEDA.Aplica reglas de escalado: usa los parámetros traducidos para crear las reglas de escalado de KEDA adecuadas.
Supervisa los eventos: KEDA supervisa continuamente los orígenes de eventos en función de estas reglas.
Escala las instancias: escala vertical o reduce verticalmente automáticamente las instancias de contenedor en función de la carga de trabajo.
En las secciones siguientes se detallan las asignaciones de parámetros específicas para cada tipo de desencadenador.
Parámetros de escalado
En las secciones siguientes se detalla cómo se asignan los parámetros de desencadenador de Azure Functions a sus configuraciones de escalador KEDA correspondientes para cada tipo de desencadenador admitido.
Cola de Azure Storage
En la tabla siguiente se muestra cómo los parámetros de desencadenador de cola de Azure Storage se asignan a los valores de configuración del escalador KEDA.
| Parámetro | Configuración de funciones | Configuración de KEDA |
|---|---|---|
| Nombre del parámetro | batchSize |
queueLength |
| Ruta de acceso de configuración |
extensions.queues.batchSize (host.json) |
metadata.queueLength |
| Valor predeterminado | 16 | 5 |
| Descripción del desencadenador de Functions | Descripción del escalador KEDA |
|---|---|
Número de mensajes de cola que el tiempo de ejecución de Functions recupera y procesa en paralelo. Cuando el número que se está procesando alcanza newBatchThreshold, el tiempo de ejecución captura otro lote. El número máximo de mensajes simultáneos por función es batchSize más newBatchThreshold. Establézcalo batchSize en 1 para eliminar la simultaneidad a menos que la aplicación se escale horizontalmente a varias máquinas virtuales. El valor máximo de batchSize es 32. |
Valor de destino para la longitud de la cola que se pasa al escalador. Por ejemplo, si un pod puede controlar 10 mensajes, establezca el destino de longitud de cola en 10. Si el número real de mensajes de la cola es 30, el escalador se escala a tres pods. |
Lógica de traducción
metadata.queueLength = extensions.queues.batchSize
Azure Service Bus (envío único)
En la tabla siguiente se muestra cómo se asignan los parámetros de desencadenador de Azure Service Bus a los valores de configuración del escalador KEDA.
| Parámetro | Configuración de funciones | Configuración de KEDA |
|---|---|---|
| Nombre del parámetro | maxConcurrentCalls |
messageCount |
| Ruta de acceso de configuración |
extensions.serviceBus.maxConcurrentCalls (host.json) |
metadata.messageCount |
| Valor predeterminado | 16 | 5 |
| Descripción del desencadenador de Functions | Descripción del escalador KEDA |
|---|---|
Limita el número máximo de llamadas simultáneas por instancia escalada. En el caso de las instancias de varios núcleos, el máximo se multiplica por el número de núcleos. Use esta configuración solo cuando isSessionsEnabled sea false. |
Número de mensajes activos en la cola o el tema de Azure Service Bus en el que se va a escalar. |
Lógica de traducción
metadata.messageCount = extensions.serviceBus.maxConcurrentCalls
Azure Service Bus (envío único basado en sesiones)
En la tabla siguiente se muestra cómo los parámetros de desencadenador de Azure Service Bus se asignan a los valores de configuración del escalador KEDA cuando isSessionsEnabled es true.
| Parámetro | Configuración de funciones | Configuración de KEDA |
|---|---|---|
| Nombre del parámetro | maxConcurrentSessions |
messageCount |
| Ruta de acceso de configuración |
extensions.serviceBus.maxConcurrentSessions (host.json) |
metadata.messageCount |
| Valor predeterminado | 8 | 5 |
| Descripción del desencadenador de Functions | Descripción del escalador KEDA |
|---|---|
Número máximo de sesiones controladas simultáneamente por instancia escalada. Use esta configuración solo cuando isSessionsEnabled sea true. |
Número de mensajes activos en la cola o el tema de Azure Service Bus en el que se va a escalar. |
Lógica de traducción
metadata.messageCount = extensions.serviceBus.maxConcurrentSessions
Azure Service Bus (procesamiento por lotes)
En la tabla siguiente se muestra cómo los parámetros de desencadenador de Azure Service Bus se asignan a los valores de configuración del escalador KEDA para el procesamiento por lotes.
| Parámetro | Configuración de funciones | Configuración de KEDA |
|---|---|---|
| Nombre del parámetro | maxMessageBatchSize |
messageCount |
| Ruta de acceso de configuración |
extensions.serviceBus.maxMessageBatchSize (host.json) |
metadata.messageCount |
| Valor predeterminado | 1 000 | 5 |
| Descripción del desencadenador de Functions | Descripción del escalador KEDA |
|---|---|
| Número máximo de mensajes pasados a cada llamada de función para el procesamiento por lotes. | Número de mensajes activos en la cola o el tema de Azure Service Bus en el que se va a escalar. |
Lógica de traducción
metadata.messageCount = extensions.serviceBus.maxMessageBatchSize
Azure Event Hubs
En la tabla siguiente se muestra cómo los parámetros de desencadenador de Azure Event Hubs se asignan a los valores de configuración del escalador KEDA.
| Parámetro | Configuración de funciones | Configuración de KEDA |
|---|---|---|
| Nombre del parámetro | targetUnprocessedEventThreshold |
unprocessedEventThreshold |
| Ruta de acceso de configuración |
extensions.eventHubs.targetUnprocessedEventThreshold (host.json) |
metadata.unprocessedEventThreshold |
| Valor predeterminado | nulo | 64 |
| Descripción del desencadenador de Functions | Descripción del escalador KEDA |
|---|---|
| Número deseado de eventos sin procesar por instancia de función. Se usa para el escalado basado en destino. | Valor medio de destino para desencadenar acciones de escalado. |
Lógica de traducción
metadata.unprocessedEventThreshold = extensions.eventHubs.targetUnprocessedEventThreshold
Apache Kafka
En la tabla siguiente se muestra cómo los parámetros de desencadenador de Apache Kafka se asignan a los valores de configuración del escalador KEDA.
| Parámetro | Configuración de funciones | Configuración de KEDA |
|---|---|---|
| Nombre del parámetro | LagThreshold |
lagThreshold |
| Ruta de acceso de configuración | Atributo de desencadenador de función | metadata.lagThreshold |
| Valor predeterminado | 1 000 | 10 |
| Descripción del desencadenador de Functions | Descripción del escalador KEDA |
|---|---|
Use este valor como ejecuciones de destino por instancia para el desencadenador de Kafka. El número de instancias deseadas se calcula en función del retraso total del consumidor dividido por LagThreshold. |
|
| Use este valor como destino del retraso total (suma de todos los retrasos de partición) para desencadenar acciones de escalado. |
Example
[KafkaTrigger(
"BrokerList",
"topic",
ConsumerGroup = "$Default",
LagThreshold = 100)]
Lógica de traducción
metadata.lagThreshold = LagThreshold
Desencadenador HTTP
El desencadenador HTTP no se asigna a un escalador KEDA. En su lugar, use las funcionalidades de escalado HTTP integradas de Container Apps o las soluciones de supervisión externa.