无法使用Add-AzMetricAlertRuleV2创建MetricAlert,New-AzActionGroup未识别
问题解决:Az.Monitor 4.x中
New-AzActionGroup命令不存在的处理方案 问题分析
使用Az.Monitor 4.5版本创建Metric Alert时,执行New-AzActionGroup -ActionGroupId $action.id报错,原因是该命令在Az.Monitor 3.1.0及以后版本已被移除;同时Az 10.0.0与旧版Az.Monitor存在依赖冲突,导致降级安装失败。
解决方案
无需降级Az.Monitor,直接修改脚本适配新版本API即可:
修正后的完整脚本
Set-AzContext -Subscription "f0bXXXXXXX" # 获取已有的动作组,直接使用其ID即可,无需New-AzActionGroup包装 $action = Get-AzActionGroup -ResourceGroupName gze-actgrp-pd-rgp-001 -Name UWDevOps_PD # 设置告警维度 $dim = New-AzMetricAlertRuleV2DimensionSelection -DimensionName "Name of the nodepool" -ValuesToInclude "pdi203pd101" $severity = 1 $RGObject = "gze-pdi203-pd1-rgp-001" $ResourceId = "/subscriptions/9caXXXXXXX/resourcegroups/gze-pdi203-pd1-rgp-001/providers/Microsoft.ContainerService/managedClusters/gze-pdi203-pd1-aks-isostr-001" # 设置告警规则条件,注意换行需加反引号` $criteria = New-AzMetricAlertRuleV2Criteria -MetricName "node_disk_usage_percentage" ` -DimensionSelection $dim ` -TimeAggregation average ` -Operator GreaterThan ` -Threshold 90 # 添加Metric告警规则,直接传入动作组ID Add-AzMetricAlertRuleV2 -Name "UWS-AKS203-ISOSTR-PD1-[Sev1-Error]-Cluster-DiskUtilization_Morethan90Percnt-V2-CT" ` -ResourceGroupName $RGObject ` -WindowSize 01:00:00 ` -Frequency 01:00:00 ` -TargetResourceId $ResourceId ` -Condition $criteria ` -ActionGroup $action.Id ` -Severity $severity
关键修改点
- 移除无用的
New-AzActionGroup命令:Add-AzMetricAlertRuleV2的-ActionGroup参数直接支持传入动作组的ID(即$action.id),不需要额外包装。 - 修正脚本换行语法:PowerShell中多行命令需用反引号
`结尾,避免参数解析失败(原脚本中$criteria定义部分缺少反引号,会触发语法错误)。
关于降级失败的补充说明
Az模块是模块化捆绑发布的,高版本Az(如10.0.0)与旧版Az.Monitor(如3.0.1)存在依赖兼容性问题,强制安装会触发模块冲突,因此优先采用适配新版本API的方案,而非降级。
内容的提问来源于stack exchange,提问作者kiruthiga
相关产品推荐
相关产品推荐

