Oharra
Orrialde honetara sartzeak baimena behar du. Saioa hasteko edo direktorioak aldatzen saia zaitezke.
Orrialde honetara sartzeak baimena behar du. Direktorioak aldatzen saia zaitezke.
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 (basado en sesiones)
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 | 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
Azure Cosmos DB (la base de datos de Azure Cosmos)
El desencadenador de Azure Cosmos DB no se asigna a un escalador KEDA. Use el escalado personalizado en su lugar.
El desencadenador Functions establece el número máximo de elementos recibidos por llamada de función. El ámbito de transacción se conserva para los procedimientos almacenados.
| Parámetro | Configuración de funciones | Configuración de KEDA |
|---|---|---|
| Nombre del parámetro | MaxItemsPerInvocation |
N/A |
| Ruta de acceso de configuración | Atributo de desencadenador de función | N/A |
| Valor predeterminado | 100 | N/A |
Example
[CosmosDBTrigger(
databaseName: "ToDoItems",
containerName: "Items",
Connection = "CosmosDBConnection",
MaxItemsPerInvocation = 100)]
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.
| Parámetro | Configuración de funciones | Configuración de KEDA |
|---|---|---|
| Nombre del parámetro | maxConcurrentRequests |
N/A |
| Ruta de acceso de configuración |
extensions.http.maxConcurrentRequests (host.json) |
N/A |
| Valor predeterminado | 100 (consumo), -1 (Premium/Dedicado) | N/A |
Desencadenador de Blob Storage
En la tabla siguiente se muestra cómo los parámetros del desencadenador de Azure Blob 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 | maxDegreeOfParallelism |
blobCount |
| Ruta de acceso de configuración |
extensions.blobs.maxDegreeOfParallelism (host.json) |
metadata.blobCount |
| Valor predeterminado | 8 × número de núcleos disponibles | 5 |
| Descripción del desencadenador de Functions | Descripción del escalador KEDA |
|---|---|
| Establece el número de invocaciones simultáneas permitidas para todas las funciones desencadenadas por blobs en una aplicación de funciones. Valor mínimo: 1. | Valor medio de destino para desencadenar acciones de escalado. (Valor predeterminado: 5, opcional) |
Lógica de traducción
metadata.blobCount = extensions.blobs.maxDegreeOfParallelism
Event Grid
Los parámetros de desencadenador de Azure Event Grid no se asignan a un escalador KEDA.
El desencadenador de Event Grid usa una solicitud HTTP de webhook. Esta solicitud se configura mediante la misma host.json configuración que el desencadenador HTTP. Esta configuración controla la ejecución en paralelo para la administración de recursos.
Desencadenador de RabbitMQ
En la tabla siguiente se muestra cómo los parámetros de desencadenador rabbitMQ 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 | prefetchCount |
value |
| Ruta de acceso de configuración |
extensions.rabbitMQ.prefetchCount (host.json) |
metadata.value |
| Valor predeterminado | 30 | 100.50 |
| Descripción del desencadenador de Functions | Descripción del escalador KEDA |
|---|---|
| Número de mensajes que el receptor puede solicitar y almacenar en caché simultáneamente. | Tasa de trabajos pendientes de mensajes o publicación/s para desencadenar el escalado. En el modo QueueLength, el valor representa la longitud de la cola de destino para el escalado. |
Lógica de traducción
metadata.value = extensions.rabbitMQ.prefetchCount