Azure 自动缩放规则映射不正确
Azure Autoscale Rules mapped incorrectly
我有以下 Powershell 脚本,我正在尝试为我在 Azure 中的规模集设置 2 个自动缩放规则。
# Scale Out Rule
$rule1 = New-AzureRmAutoscaleRule `
-MetricName "Percentage CPU" `
-MetricResourceId /subscriptions/$mySubscriptionId/resourceGroups/$myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/$myScaleSet `
-Operator GreaterThanOrEqual `
-MetricStatistic Average `
-Threshold 50 `
-TimeGrain 00:01:00 `
-TimeWindow 00:05:00 `
-ScaleActionCooldown 00:01:00 `
-ScaleActionDirection Increase `
-ScaleActionScaleType ChangeCount `
-ScaleActionValue 1
# Scale In Rule
$rule2 = New-AzureRmAutoscaleRule `
-MetricName "Percentage CPU" `
-MetricResourceId /subscriptions/$mySubscriptionId/resourceGroups/$myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/$myScaleSet `
-Operator LessThanOrEqual `
-MetricStatistic Average `
-Threshold 30 `
-TimeGrain 00:01:00 `
-TimeWindow 00:05:00 `
-ScaleActionCooldown 00:01:00 `
-ScaleActionDirection Decrease `
-ScaleActionScaleType ChangeCount `
-ScaleActionValue 1
$profile = New-AzureRmAutoscaleProfile `
-DefaultCapacity "2" `
-MaximumCapacity "10" `
-MinimumCapacity "2" `
-Rule $rule1,$rule2 `
-Name "elastic-profile"
Add-AzureRmAutoscaleSetting `
-Location $myLocation `
-Name "elastic-setting" `
-ResourceGroup $myResourceGroup `
-TargetResourceId /subscriptions/$mySubscriptionId/resourceGroups/$myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/$myScaleSet `
-AutoscaleProfile $profile
我 运行 脚本时没有收到错误。
现在的问题是:
在 Azure 中,规则没有正确映射;见下图:
.json 看起来像这样:
由于脚本显然没有被正确解析,自动缩放不起作用。
如果我更新 Azure 门户中的规则,它们就会起作用。
有没有人遇到过同样的情况?
你是对的。 这是 Azure PowerShell 版本 6.8.1 中的一个已知错误
产品团队正在努力解决这个问题。同时,我们还使用这些信息更新了文档。
很抱歉给您带来的不便,因为您正在关注文档并且缺少此信息。
解决方法是在较低的 PowerShell 版本中执行此操作。
运行 Get-Module -ListAvailable AzureRM
查找版本。如需升级,见Install Azure PowerShell module.
我有以下 Powershell 脚本,我正在尝试为我在 Azure 中的规模集设置 2 个自动缩放规则。
# Scale Out Rule
$rule1 = New-AzureRmAutoscaleRule `
-MetricName "Percentage CPU" `
-MetricResourceId /subscriptions/$mySubscriptionId/resourceGroups/$myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/$myScaleSet `
-Operator GreaterThanOrEqual `
-MetricStatistic Average `
-Threshold 50 `
-TimeGrain 00:01:00 `
-TimeWindow 00:05:00 `
-ScaleActionCooldown 00:01:00 `
-ScaleActionDirection Increase `
-ScaleActionScaleType ChangeCount `
-ScaleActionValue 1
# Scale In Rule
$rule2 = New-AzureRmAutoscaleRule `
-MetricName "Percentage CPU" `
-MetricResourceId /subscriptions/$mySubscriptionId/resourceGroups/$myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/$myScaleSet `
-Operator LessThanOrEqual `
-MetricStatistic Average `
-Threshold 30 `
-TimeGrain 00:01:00 `
-TimeWindow 00:05:00 `
-ScaleActionCooldown 00:01:00 `
-ScaleActionDirection Decrease `
-ScaleActionScaleType ChangeCount `
-ScaleActionValue 1
$profile = New-AzureRmAutoscaleProfile `
-DefaultCapacity "2" `
-MaximumCapacity "10" `
-MinimumCapacity "2" `
-Rule $rule1,$rule2 `
-Name "elastic-profile"
Add-AzureRmAutoscaleSetting `
-Location $myLocation `
-Name "elastic-setting" `
-ResourceGroup $myResourceGroup `
-TargetResourceId /subscriptions/$mySubscriptionId/resourceGroups/$myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets/$myScaleSet `
-AutoscaleProfile $profile
我 运行 脚本时没有收到错误。 现在的问题是: 在 Azure 中,规则没有正确映射;见下图:
.json 看起来像这样:
由于脚本显然没有被正确解析,自动缩放不起作用。
如果我更新 Azure 门户中的规则,它们就会起作用。
有没有人遇到过同样的情况?
你是对的。 这是 Azure PowerShell 版本 6.8.1 中的一个已知错误 产品团队正在努力解决这个问题。同时,我们还使用这些信息更新了文档。
很抱歉给您带来的不便,因为您正在关注文档并且缺少此信息。
解决方法是在较低的 PowerShell 版本中执行此操作。
运行 Get-Module -ListAvailable AzureRM
查找版本。如需升级,见Install Azure PowerShell module.