You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PowerShell更新Azure Container App的缩放规则?

用PowerShell更新Azure容器应用的缩放规则

首先确保已安装Az.ContainerApps模块并登录Azure:

# 安装模块(首次使用)
Install-Module -Name Az.ContainerApps -Force -AllowClobber
# 登录Azure账号
Connect-AzAccount

以下是几种常见缩放规则的PowerShell配置示例,你可以根据门户中的具体配置调整参数:

1. 基于CPU利用率的自动缩放

如果你的门户配置是基于CPU阈值(比如70%触发扩容,30%触发缩容)、实例数范围1-10:

# 获取目标容器应用
$containerApp = Get-AzContainerApp -ResourceGroupName "你的资源组名" -Name "你的容器应用名"

# 定义CPU缩放规则
$cpuScaleRule = @{
    Name = "cpu-scale-rule"
    Trigger = @{
        Type = "Cpu"
        Metadata = @{
            "cpuThreshold" = "70"          # CPU利用率阈值(%)
            "scaleOutCoolDown" = "60"      # 扩容冷却时间(秒)
            "scaleInCoolDown" = "300"      # 缩容冷却时间(秒)
        }
    }
    Scale = @{
        MinReplicas = 1
        MaxReplicas = 10
    }
}

# 更新缩放规则(覆盖原有规则,若需保留则追加到数组)
$containerApp.Scale.Rules = @($cpuScaleRule)

# 应用配置
Set-AzContainerApp -ResourceGroupName "你的资源组名" -Name "你的容器应用名" -Scale $containerApp.Scale

2. 基于内存利用率的自动缩放

类似CPU规则,只需修改触发器类型和内存阈值:

$memoryScaleRule = @{
    Name = "memory-scale-rule"
    Trigger = @{
        Type = "Memory"
        Metadata = @{
            "memoryThreshold" = "80"       # 内存利用率阈值(%)
            "scaleOutCoolDown" = "60"
            "scaleInCoolDown" = "300"
        }
    }
    Scale = @{
        MinReplicas = 1
        MaxReplicas = 10
    }
}

$containerApp.Scale.Rules = @($memoryScaleRule)
Set-AzContainerApp -ResourceGroupName "你的资源组名" -Name "你的容器应用名" -Scale $containerApp.Scale

3. 手动固定实例数

如果门户配置是手动指定固定实例数(比如3个):

$containerApp = Get-AzContainerApp -ResourceGroupName "你的资源组名" -Name "你的容器应用名"

# 移除所有自动缩放规则,设置固定实例数
$containerApp.Scale.Rules = @()
$containerApp.Scale.MinReplicas = 3
$containerApp.Scale.MaxReplicas = 3

Set-AzContainerApp -ResourceGroupName "你的资源组名" -Name "你的容器应用名" -Scale $containerApp.Scale

4. 基于HTTP并发请求的缩放

若配置的是每实例并发请求数阈值(比如100):

$httpScaleRule = @{
    Name = "http-scale-rule"
    Trigger = @{
        Type = "Http"
        Metadata = @{
            "concurrentRequests" = "100"   # 每实例并发请求数阈值
            "scaleOutCoolDown" = "60"
            "scaleInCoolDown" = "300"
        }
    }
    Scale = @{
        MinReplicas = 1
        MaxReplicas = 10
    }
}

$containerApp.Scale.Rules = @($httpScaleRule)
Set-AzContainerApp -ResourceGroupName "你的资源组名" -Name "你的容器应用名" -Scale $containerApp.Scale

注意事项

  • 替换命令中的你的资源组名和你的容器应用名为实际值
  • 若需保留原有缩放规则,使用$containerApp.Scale.Rules += $newScaleRule追加,而非直接覆盖数组
  • 冷却时间、阈值等参数可根据门户中的配置精确调整

内容的提问来源于stack exchange,提问作者Shehan Weerasooriya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 03:39:55