Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Functions sur Container Apps s’exécute normalement en mode de mise à l’échelle géré par la plateforme. Au démarrage, l’hôte Functions inspecte les déclencheurs (par exemple, HTTP, File d’attente ou Minuteur) et Azure Container Apps crée la configuration de déclencheur KEDA correspondante pour la révision de l’application.
Définissez properties.template.scale.allowScalingRuleOverride quand vous souhaitez désactiver ce mappage automatique et fournir vos propres règles de mise à l’échelle dans template.scale.rules.
Prerequisites
- Ressource Container Apps déployée en tant qu’application Functions (
kind=functionapp). - L’interface CLI Azure, avec l’autorisation d’appeler
az restsur la ressource d’application. - Version
2026-03-02-previewde l’API REST ou ultérieure.
Définition de propriété
| Propriété | Catégorie | Par défaut | S’applique à | Version de l’API |
|---|---|---|---|---|
properties.template.scale.allowScalingRuleOverride |
boolean (peut être nul) |
false / null |
Fonctions uniquement sur Container Apps (kind=functionapp) |
2026-03-02-preview et versions ultérieures |
Behavior
| Valeur de remplacement | Règles de mise à l’échelle | Behavior |
|---|---|---|
false ou null |
Généré automatiquement | Azure crée et gère des règles KEDA à partir de déclencheurs Functions découverts. Les règles fournies par l’utilisateur sont bloquées dans ce mode. |
true |
Défini par le client | Azure ne génère pas de règles basées sur des déclencheurs. Les règles que vous fournissez sont utilisées pour les décisions d’échelle. |
true sans règles fournies |
Aucune information fournie | Azure ignore la génération de règles basée sur le déclencheur. Seul le comportement du scaler HTTP de base de la plateforme reste actif. |
Activer le remplacement et fournir des règles d’échelle personnalisées
Cet exemple commence par la mise à l’échelle gérée par la plateforme (allowScalingRuleOverride=false) et bascule vers le contrôle de règle manuel. La requête PATCH inclut une règle de file d’attente Azure et une règle de concurrence HTTP.
Créez un fichier de corps PATCH nommé
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" } } } ] } } } }Appliquez la mise à jour.
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
Résultat attendu :
- Les règles dérivées du déclencheur ne sont pas générées pour la nouvelle révision.
- Les règles personnalisées (
my-queue-ruleetmy-http-rule) sont attachées à la révision. - Le comportement de montée en charge suit désormais la profondeur de la file d’attente (
queueLength=20) et la concurrence HTTP (concurrentRequests=50).
Désactiver le remplacement et revenir aux règles générées par la plateforme
Cet exemple retourne une application configurée manuellement (allowScalingRuleOverride=true) à la mise à l’échelle gérée par la plateforme.
Important
Une requête qui définit allowScalingRuleOverride=false alors qu’elle rules n’est pas vide est rejetée. Pour revenir à l’état précédent, envoyez rules: [] dans le même PATCH.
Créez un fichier de corps PATCH nommé
patch-disable-override.json.{ "properties": { "template": { "scale": { "allowScalingRuleOverride": false, "rules": [] } } } }Appliquez la mise à jour.
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
Résultat attendu :
- Les règles d’échelle personnalisées sont effacées.
- Azure reprend la création de règles de mise à l’échelle à partir de déclencheurs Functions découverts.
- Une nouvelle révision est produite avec une mise à l’échelle gérée par la plateforme.
Scénarios d’erreur
| Scénario | Code d'erreur | Message d’erreur |
|---|---|---|
Définir allowScalingRuleOverride=true sur une application qui n’est pas une application Functions (kind n’est pas functionapp) |
AllowScalingRuleOverrideNotApplicable |
La AllowScalingRuleOverride propriété s’applique uniquement aux applications de fonction (kind = 'functionapp'). Il ne peut pas être défini pour d’autres types d’applications conteneur. |
Définir allowScalingRuleOverride=false alors que les règles de mise à l’échelle personnalisées sont toujours présentes |
FunctionAppCannotSetScaleRules |
Impossible de basculer vers le mode contrôlé par la plateforme si des règles non vides existent pour protéger la suppression accidentelle des règles d’échelle définies par le client. Les clients doivent définir [] explicitement (tableau vide) dans les règles de mise à l’échelle s’ils souhaitent que la plateforme gère automatiquement. |