Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le funzioni nelle app contenitore vengono in genere eseguite in modalità di scalabilità gestita dalla piattaforma. All'avvio, il runtime di Functions esamina i trigger (ad esempio HTTP, Queue o Timer) e App contenitore di Azure crea la configurazione del trigger KEDA corrispondente per la revisione dell'app.
Impostare properties.template.scale.allowScalingRuleOverride quando si vuole disabilitare il mapping automatico e fornire regole di scalabilità personalizzate in template.scale.rules.
Prerequisiti
- Una risorsa di Container Apps distribuita come app Functions (
kind=functionapp). - interfaccia della riga di comando di Azure, con l'autorizzazione a chiamare
az restsulla risorsa dell'applicazione. - Versione
2026-03-02-previewdell'API REST o successiva.
Definizione di proprietà
| Proprietà | Tipo | Impostazione predefinita | Si applica a | Versione dell'API |
|---|---|---|---|---|
properties.template.scale.allowScalingRuleOverride |
boolean (nullable) |
false / null |
Funzioni solo in Container Apps (kind=functionapp) |
2026-03-02-preview e versioni successive |
Behavior
| Sostituisci valore | Regole di scalabilità | Behavior |
|---|---|---|
false oppure null |
Generato automaticamente | Azure crea e gestisce le regole KEDA dai trigger di Funzioni individuate. Le regole fornite dall'utente vengono bloccate in questa modalità. |
true |
Definito dal cliente | Azure non genera regole basate su trigger. Le regole fornite vengono usate per le decisioni di scalabilità. |
true senza regole fornite |
Nessuno specificato | Azure ignora la generazione di regole basate su trigger. Solo il comportamento del scaler HTTP di base della piattaforma rimane attivo. |
Abilitare l'override e fornire regole di scalabilità personalizzate
Questo esempio inizia con il ridimensionamento gestito dalla piattaforma (allowScalingRuleOverride=false) e passa al controllo manuale delle regole. La richiesta PATCH include una regola di coda Azure e una regola di concorrenza HTTP.
Creare un file di corpo PATCH denominato
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" } } } ] } } } }Applicare l'aggiornamento.
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
Risultato previsto:
- Le regole derivate dal trigger non vengono generate per la nuova revisione.
- Le regole personalizzate (
my-queue-ruleemy-http-rule) sono associate alla revisione. - Il comportamento di scalabilità orizzontale si basa ora sulla profondità della coda (
queueLength=20) e sulla concorrenza HTTP (concurrentRequests=50).
Disabilitare l'override e ripristinare le regole generate dalla piattaforma
Questo esempio restituisce un'app configurata manualmente (allowScalingRuleOverride=true) al ridimensionamento gestito dalla piattaforma.
Importante
Una richiesta che imposta allowScalingRuleOverride=false mentre rules non è vuota viene rifiutata. Per tornare indietro, inviare rules: [] nella stessa PATCH.
Creare un file di corpo PATCH denominato
patch-disable-override.json.{ "properties": { "template": { "scale": { "allowScalingRuleOverride": false, "rules": [] } } } }Applicare l'aggiornamento.
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
Risultato previsto:
- Le regole di scalabilità personalizzate vengono cancellate.
- Azure riprende la creazione di regole di scalabilità dai trigger di Funzioni individuati.
- Viene generata una nuova revisione con scalabilità gestita dalla piattaforma.
Scenari di errore
| Scenario | Codice di errore | Messaggio d'errore |
|---|---|---|
Impostare allowScalingRuleOverride=true in un'app senza funzioni (kind non è functionapp) |
AllowScalingRuleOverrideNotApplicable |
La AllowScalingRuleOverride proprietà è applicabile solo alle app per le funzioni (kind = 'functionapp'). Non può essere impostato per altri tipi di app contenitore. |
Impostare allowScalingRuleOverride=false mentre le regole di scalabilità personalizzate sono ancora presenti |
FunctionAppCannotSetScaleRules |
Non è possibile passare alla modalità controllata dalla piattaforma se esistono regole non vuote per proteggere l'eliminazione accidentale delle regole di scalabilità definite dal cliente. I clienti devono impostare esplicitamente [] (array vuoto) nelle regole di scalabilità se vogliono che la piattaforma lo gestisca automaticamente. |