Åsidosätt automatiskt genererade KEDA-skalningsregler för Azure Functions i Container Apps

Funktioner i Container Apps körs normalt i plattformshanterat skalningsläge. Vid uppstart granskar Functions-värden utlösare (till exempel HTTP, kö eller timer), och Azure Container Apps skapar motsvarande KEDA-utlösarkonfiguration för appens revision.

Ange properties.template.scale.allowScalingRuleOverride när du vill inaktivera den automatiska mappningen och ange egna skalningsregler i template.scale.rules.

Förutsättningar

  • En resurs för Container Apps som distribuerats som en Functions-app (kind=functionapp).
  • Azure CLI med behörighet att anropa az rest mot appresursen.
  • REST API-version 2026-03-02-preview eller senare.

Egenskapsdefinition

Property Type Standardinställning Gäller för API-version
properties.template.scale.allowScalingRuleOverride boolean (nullbar) false / null Endast funktioner i Container Apps (kind=functionapp) 2026-03-02-preview och senare

Behavior

Åsidosättningsvärde Skalningsregler Behavior
false eller null Automatiskt genererad Azure skapar och hanterar KEDA-regler från identifierade Functions-utlösare. Regler som tillhandahålls av användaren blockeras i det här läget.
true Kunddefinierad Azure genererar inte utlösarbaserade regler. De regler som du anger används för skalningsbeslut.
true utan att några regler har angetts Ingen angiven Azure hoppar över utlösarbaserad regelgenerering. Endast plattformens grundläggande HTTP-skalningsbeteende är fortfarande aktivt.

Aktivera överstyrning och ange anpassade skalningsregler

Det här exemplet börjar med plattformshanterad skalning (allowScalingRuleOverride=false) och växlar till manuell regelkontroll. PATCH-begäran innehåller en Azure köregel och en HTTP-samtidighetsregel.

  1. Skapa en PATCH-brödtextfil med namnet 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"
                  }
                }
              }
            ]
          }
        }
      }
    }
    
  2. Tillämpa uppdateringen.

    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
    

Förväntat resultat:

  • Regler som härleds av utlösare genereras inte för den nya revisionen.
  • De anpassade reglerna (my-queue-rule och my-http-rule) är kopplade till revisionen.
  • Utskalningsbeteendet följer nu ködjupet (queueLength=20) och HTTP-samtidigheten (concurrentRequests=50).

Inaktivera åsidosättning och återgå till plattformsgenererade regler

Det här exemplet returnerar en manuellt konfigurerad app (allowScalingRuleOverride=true) till plattformshanterad skalning.

Important

En begäran som anger allowScalingRuleOverride=false när rules den inte är tom avvisas. Om du vill växla tillbaka skickar du rules: [] in samma PATCH.

  1. Skapa en PATCH-brödtextfil med namnet patch-disable-override.json.

    {
      "properties": {
        "template": {
          "scale": {
            "allowScalingRuleOverride": false,
            "rules": []
          }
        }
      }
    }
    
  2. Tillämpa uppdateringen.

    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
    

Förväntat resultat:

  • Anpassade skalningsregler rensas.
  • Azure fortsätter att skapa skalningsregler från identifierade Functions-utlösare.
  • En ny revision skapas med plattformshanterad skalning.

Felscenarier

Scenario Felkod Felmeddelande
Ställ in allowScalingRuleOverride=true på en app som inte är Functions (kind är inte functionapp) AllowScalingRuleOverrideNotApplicable Egenskapen AllowScalingRuleOverride gäller endast för Funktionsappar (kind = 'functionapp'). Det går inte att ange för andra typer av containerappar.
Ange allowScalingRuleOverride=false medan anpassade skalningsregler fortfarande finns FunctionAppCannotSetScaleRules Det går inte att växla till plattformskontrollerat läge om det finns regler som inte är tomma för att skydda mot oavsiktlig borttagning av kunddefinierade skalningsregler. Kunder måste uttryckligen ange [] (tom matris) i skalningsregler om de vill att plattformen ska hanteras automatiskt.