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.
As funções nas Aplicações Container normalmente correm em modo de escalabilidade gerida pela plataforma. No arranque, o host de Funções inspeciona os gatilhos (por exemplo, HTTP, Queue ou Timer), e o Azure Container Apps cria a configuração correspondente dos gatilhos KEDA para a revisão da aplicação.
Define properties.template.scale.allowScalingRuleOverride quando queres desativar esse mapeamento automático e fornece as tuas próprias regras de escala em template.scale.rules.
Pré-requisitos
- Um recurso do Container Apps implementado como uma aplicação Functions (
kind=functionapp). - O CLI do Azure, com permissão para chamar
az restcontra o recurso da aplicação. - Versão
2026-03-02-previewda API REST ou mais recente.
Definição do imóvel
| Property | Tipo | Predefinido | Aplica-se a | Versão da API |
|---|---|---|---|---|
properties.template.scale.allowScalingRuleOverride |
boolean (anulável) |
false / null |
Funções apenas no Container Apps (kind=functionapp) |
2026-03-02-preview e mais tarde |
Comportamento
| Valor de substituição | Regras de escala | Comportamento |
|---|---|---|
false ou null |
Gerado automaticamente | O Azure cria e gere regras KEDA a partir dos acionadores do Azure Functions detetados. As regras fornecidas pelo utilizador são bloqueadas neste modo. |
true |
Definido pelo cliente | O Azure não gera regras baseadas em gatilhos. As regras que forneces são usadas para decisões de escala. |
true sem regras fornecidas |
Nenhum fornecido | O Azure evita a geração de regras baseada em gatilhos. Apenas o comportamento base do escalador HTTP da plataforma permanece ativo. |
Ativar a substituição e definir regras de escala personalizadas
Este exemplo começa com a escalabilidade gerida pela plataforma (allowScalingRuleOverride=false) e muda para controlo manual de regras. O pedido PATCH inclui uma regra de fila Azure e uma regra de concorrência HTTP.
Crie um ficheiro de corpo PATCH chamado
patch-enable-override.json.{ "properties": { "template": { "scale": { "allowScalingRuleOverride": true, "rules": [ { "name": "my-queue-rule", "custom": { "type": "azure-queue", "metadata": { "queueName": "my-test-queue", "queueLength": "20", "connectionFromEnv": "AzureWebJobsStorage" } } }, { "name": "my-http-rule", "http": { "metadata": { "concurrentRequests": "50" } } } ] } } } }Aplica a atualização.
az rest --method PATCH \ --uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/containerApps/{appName}?api-version=2026-03-02-preview" \ --headers "Content-Type=application/json" \ --body @patch-enable-override.json
Resultado esperado:
- Regras derivadas de gatilhos não são geradas para a nova revisão.
- As regras personalizadas (
my-queue-ruleemy-http-rule) estão anexadas à revisão. - O comportamento de expansão horizontal passa agora a seguir a profundidade da fila (
queueLength=20) e a concorrência HTTP (concurrentRequests=50).
Desativar a sobreposição e reverter às regras geradas pela plataforma
Este exemplo devolve uma aplicação configurada manualmente (allowScalingRuleOverride=true) para escalabilidade gerida pela plataforma.
Importante
Um pedido que defina allowScalingRuleOverride=false enquanto rules não está vazio é rejeitado. Para voltar atrás, envie rules: [] no mesmo PATCH.
Crie um ficheiro de corpo PATCH chamado
patch-disable-override.json.{ "properties": { "template": { "scale": { "allowScalingRuleOverride": false, "rules": [] } } } }Aplica a atualização.
az rest --method PATCH \ --uri "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.App/containerApps/{appName}?api-version=2026-03-02-preview" \ --headers "Content-Type=application/json" \ --body @patch-disable-override.json
Resultado esperado:
- As regras de escala personalizadas são eliminadas.
- O Azure retoma a criação de regras de escala a partir dos gatilhos de Funções descobertos.
- É produzida uma nova revisão com escalabilidade gerida por plataforma.
Cenários de erro
| Scenario | Código de erro | Mensagem de erro |
|---|---|---|
Defina allowScalingRuleOverride=true numa aplicação que não é Functions (kind não é functionapp) |
AllowScalingRuleOverrideNotApplicable |
A AllowScalingRuleOverride propriedade é aplicável apenas a Aplicações de Funções (kind = 'functionapp'). Não pode ser configurado para outros tipos de aplicações de contentores. |
Definir allowScalingRuleOverride=false enquanto as regras de escala personalizada ainda estão presentes |
FunctionAppCannotSetScaleRules |
Não é possível alternar para o modo gerido pela plataforma se existirem regras não vazias, para evitar a eliminação acidental de regras de dimensionamento definidas pelo cliente. Os clientes precisam de definir explicitamente [] (array vazio) nas regras de escala, se quiserem que a plataforma faça a gestão automática. |