Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Quando implementa o Azure Functions nas Azure Container Apps, a plataforma traduz automaticamente os parâmetros do seu disparo Functions em configurações de escalabilidade KEDA. Esta tradução garante que as suas Funções escalam adequadamente com base na carga de trabalho recebida de várias fontes de eventos.
Como funcionam os mapeamentos de escalabilidade
O Azure Functions on Container Apps utiliza o KEDA para monitorizar as fontes de eventos e escalar as suas aplicações de funções. A plataforma automaticamente:
Traduz parâmetros de Funções: Converte a configuração do seu disparo de Funções (de
host.jsonou atributos de disparo) em metadados do escalador KEDA.Aplica regras de escalabilidade: Utiliza os parâmetros traduzidos para criar regras de escalabilidade KEDA apropriadas.
Monitoriza eventos: A KEDA monitoriza continuamente as suas fontes de eventos com base nestas regras.
Escala instâncias: Escala automaticamente as instâncias dos teus contentores para cima ou para baixo consoante a carga de trabalho.
As secções seguintes detalham os mapeamentos de parâmetros específicos para cada tipo de gatilho.
Parâmetros de escala
As secções seguintes detalham como os parâmetros de disparo do Azure Functions correspondem às suas configurações de escalador KEDA correspondentes para cada tipo de disparo suportado.
Fila de Armazenamento do Azure
A tabela seguinte mostra como os parâmetros de disparo do Azure Storage Queue correspondem aos valores da configuração do escalador KEDA.
| Parâmetro | Configuração das Funções | Configuração KEDA |
|---|---|---|
| Nome do parâmetro | batchSize |
queueLength |
| Caminho de configuração |
extensions.queues.batchSize (host.json) |
metadata.queueLength |
| Valor predefinido | 16 | 5 |
| Descrição do gatilho de funções | Descrição do escalador KEDA |
|---|---|
O número de mensagens de fila que o runtime das Funções recupera e processa em paralelo. Quando o número a ser processado atinge o newBatchThreshold, o tempo de execução obtém outro lote. O número máximo de mensagens concorrentes por função é batchSize mais newBatchThreshold. Defina batchSize para 1 para eliminar a concorrência, a menos que a aplicação escale para várias VMs. O máximo batchSize é 32. |
O valor alvo para o comprimento da fila é passado para o escalador. Por exemplo, se um pod conseguir lidar com 10 mensagens, defina o alvo de comprimento da fila para 10. Se o número real de mensagens na fila for 30, o escalador escala para três pods. |
Lógica de tradução
metadata.queueLength = extensions.queues.batchSize
Azure Service Bus (single dispatch)
A tabela seguinte mostra como os parâmetros de disparo do Azure Service Bus correspondem aos valores de configuração do escalador KEDA.
| Parâmetro | Configuração das Funções | Configuração KEDA |
|---|---|---|
| Nome do parâmetro | maxConcurrentCalls |
messageCount |
| Caminho de configuração |
extensions.serviceBus.maxConcurrentCalls (host.json) |
metadata.messageCount |
| Valor predefinido | 16 | 5 |
| Descrição do gatilho de funções | Descrição do escalador KEDA |
|---|---|
Limita o número máximo de chamadas concorrentes por instância escalonada. Para instâncias multicore, o máximo é multiplicado pelo número de cores. Use esta definição apenas quando isSessionsEnabled for falso. |
Número de mensagens ativas na sua fila ou tópico do Azure Service Bus para escalar. |
Lógica de tradução
metadata.messageCount = extensions.serviceBus.maxConcurrentCalls
Azure Service Bus (single dispatch, based sessions)
A tabela seguinte mostra como os parâmetros de disparo do Azure Service Bus correspondem aos valores de configuração do escalador KEDA quando isSessionsEnabled é verdadeiro.
| Parâmetro | Configuração das Funções | Configuração KEDA |
|---|---|---|
| Nome do parâmetro | maxConcurrentSessions |
messageCount |
| Caminho de configuração |
extensions.serviceBus.maxConcurrentSessions (host.json) |
metadata.messageCount |
| Valor predefinido | 8 | 5 |
| Descrição do gatilho de funções | Descrição do escalador KEDA |
|---|---|
Número máximo de sessões geridas em simultâneo por instância escalonada. Use esta definição apenas quando isSessionsEnabled for verdadeira. |
Número de mensagens ativas na sua fila ou tópico do Azure Service Bus para escalar. |
Lógica de tradução
metadata.messageCount = extensions.serviceBus.maxConcurrentSessions
Azure Service Bus (processamento por lotes)
A tabela seguinte mostra como os parâmetros de disparo do Azure Service Bus correspondem aos valores de configuração do escalador KEDA para processamento em lote.
| Parâmetro | Configuração das Funções | Configuração KEDA |
|---|---|---|
| Nome do parâmetro | maxMessageBatchSize |
messageCount |
| Caminho de configuração |
extensions.serviceBus.maxMessageBatchSize (host.json) |
metadata.messageCount |
| Valor predefinido | 1000 | 5 |
| Descrição do gatilho de funções | Descrição do escalador KEDA |
|---|---|
| O número máximo de mensagens passadas para cada função chama para processamento em lote. | Número de mensagens ativas na sua fila ou tópico do Azure Service Bus para escalar. |
Lógica de tradução
metadata.messageCount = extensions.serviceBus.maxMessageBatchSize
Hubs de Eventos do Azure
A tabela seguinte mostra como os parâmetros dos Azure Event Hubs se mapeiam para os valores de configuração do escalador KEDA.
| Parâmetro | Configuração das Funções | Configuração KEDA |
|---|---|---|
| Nome do parâmetro | targetUnprocessedEventThreshold |
unprocessedEventThreshold |
| Caminho de configuração |
extensions.eventHubs.targetUnprocessedEventThreshold (host.json) |
metadata.unprocessedEventThreshold |
| Valor predefinido | null | 64 |
| Descrição do gatilho de funções | Descrição do escalador KEDA |
|---|---|
| Número desejado de eventos não processados por instância de função. Usado para escalabilidade baseada em alvos. | Valor médio-alvo para desencadear ações de escalonamento. |
Lógica de tradução
metadata.unprocessedEventThreshold = extensions.eventHubs.targetUnprocessedEventThreshold
Apache Kafka
A tabela seguinte mostra como os parâmetros de disparo do Apache Kafka correspondem aos valores da configuração do escalador KEDA.
| Parâmetro | Configuração das Funções | Configuração KEDA |
|---|---|---|
| Nome do parâmetro | LagThreshold |
lagThreshold |
| Caminho de configuração | Atributo de disparo de função | metadata.lagThreshold |
| Valor predefinido | 1000 | 10 |
| Descrição do gatilho de funções | Descrição do escalador KEDA |
|---|---|
Use este valor como as execuções alvo por instância para o gatilho Kafka. O número de instâncias desejadas é calculado com base no atraso total do consumidor dividido por LagThreshold. |
|
| Use este valor como alvo para o atraso total (soma de todos os atrasos de partição) para desencadear ações de escalabilidade. |
Example
[KafkaTrigger(
"BrokerList",
"topic",
ConsumerGroup = "$Default",
LagThreshold = 100)]
Lógica de tradução
metadata.lagThreshold = LagThreshold
Acionador HTTP
O gatilho HTTP não corresponde a um escalador KEDA. Em vez disso, utilize as capacidades integradas de escalonamento HTTP do Container Apps ou soluções externas de monitorização.