如何使用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
相关产品推荐
相关产品推荐

