Container Apps의 함수는 일반적으로 플랫폼 관리형 크기 조정 모드에서 실행됩니다. 시작 시 Functions 호스트는 트리거(예: HTTP, 큐 또는 타이머)를 검사하고, Azure Container Apps 앱 수정 버전에 대해 일치하는 KEDA 트리거 구성을 만듭니다.
자동 매핑을 비활성화하고 template.scale.rules에서 사용자 지정 크기 조정 규칙을 제공하려면 properties.template.scale.allowScalingRuleOverride로 설정하세요.
사전 요구 사항
- Functions 앱(
kind=functionapp)으로 배포된 Container Apps 리소스입니다. - 앱 리소스에 대해
az rest호출할 수 있는 권한이 있는 Azure CLI. - REST API 버전
2026-03-02-preview이상.
속성 정의
| Property | Type | 기본값 | 적용 대상 | API 버전 |
|---|---|---|---|---|
properties.template.scale.allowScalingRuleOverride |
boolean (null 허용) |
false / null |
Container Apps의 함수만(kind=functionapp) |
2026-03-02-preview 및 이후 |
Behavior
| 값 재정의 | 스케일링 규칙 | Behavior |
|---|---|---|
false 또는 null |
자동 생성 | Azure 검색된 Functions 트리거에서 KEDA 규칙을 만들고 관리합니다. 사용자가 제공한 규칙은 이 모드에서 차단됩니다. |
true |
고객 설정 | Azure 트리거 기반 규칙을 생성하지 않습니다. 제공하는 규칙은 크기 조정 결정에 사용됩니다. |
true 규칙이 제공되지 않음 |
제공되지 않음 | Azure 트리거 기반 규칙 생성을 건너뜁니다. 플랫폼의 기준 HTTP 스케일러 동작만 활성 상태로 유지됩니다. |
재정의를 활성화하고 사용자 지정 크기 조정 규칙 제공
이 예제는 플랫폼 관리형 크기 조정(allowScalingRuleOverride=false)으로 시작하고 수동 규칙 제어로 전환합니다. PATCH 요청에는 하나의 Azure 큐 규칙과 하나의 HTTP 동시성 규칙이 포함됩니다.
라는 PATCH 본문 파일을 만듭니다
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" } } } ] } } } }업데이트를 적용합니다.
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
예상되는 결과:
- 트리거 파생 규칙은 새 수정 버전에 대해 생성되지 않습니다.
- 사용자 지정 규칙(
my-queue-rule및my-http-rule)이 수정 버전에 연결됩니다. - 이제 스케일 아웃 동작은 큐 깊이(
queueLength=20) 및 HTTP 동시성(concurrentRequests=50)을 따릅니다.
재정의 사용 안 함 및 플랫폼 생성 규칙으로 되돌리기
이 예제에서는 수동으로 구성된 앱(allowScalingRuleOverride=true)을 플랫폼 관리형 크기 조정에 반환합니다.
Important
비어있지 않은 상태에서 allowScalingRuleOverride=false 설정하는 rules 요청은 거부됩니다. 다시 전환하려면 같은 PATCH 요청에서 rules: []를 보내세요.
라는 PATCH 본문 파일을 만듭니다
patch-disable-override.json.{ "properties": { "template": { "scale": { "allowScalingRuleOverride": false, "rules": [] } } } }업데이트를 적용합니다.
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
예상되는 결과:
- 사용자 지정 크기 조정 규칙이 지워집니다.
- Azure는 검색된 Functions 트리거를 기반으로 크기 조정 규칙 생성을 재개합니다.
- 플랫폼 관리형 크기 조정을 사용하여 새 수정 버전이 생성됩니다.
오류 시나리오
| Scenario | 오류 코드 | 오류 메시지 |
|---|---|---|
Functions 앱이 아닌 앱(kind은 functionapp이 아님)에서 allowScalingRuleOverride=true 설정 |
AllowScalingRuleOverrideNotApplicable |
이 AllowScalingRuleOverride 속성은 Function Apps(kind = 'functionapp')에만 적용됩니다. 다른 컨테이너 앱 종류에 대해서는 설정할 수 없습니다. |
사용자 지정 크기 조정 규칙이 아직 있는 상태에서 allowScalingRuleOverride=false 설정 |
FunctionAppCannotSetScaleRules |
비어 있지 않은 규칙이 있는 경우 실수로 고객 정의 확장 규칙을 삭제하는 것을 보호하기 위해 플랫폼 제어 모드로 전환할 수 없습니다. 고객은 플랫폼이 자동으로 관리할 수 있도록 하려면 스케일 규칙에서 [](빈 배열)을 명시적으로 설정해야 합니다. |