使用空 TargetResourceRegion 禁用警报规则

Disable alert rule with empty TargetResourceRegion

我正在尝试通过 powershell 禁用警报规则,但出现以下错误:

Get-AzMetricAlertRuleV2 -ResourceGroupName "myresourcegroupname"  -Name "alertname" | Add-AzMetricAlertRuleV2 -DisableRule

Add-AzMetricAlertRuleV2: Cannot validate argument on parameter 'TargetResourceRegion'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.

我试过没有 |添加 AzMetricAlertRuleV2-DisableRule:

Get-AzMetricAlertRuleV2 -ResourceGroupName "myresourcegroupname"  -Name "alertname"
Output:
Criteria             : {Metric1}
Actions              : {/subscriptions/subscriptionguid/resourceGroups/myresourcegroupname/providers/microsoft.insights/actionGroups/actiongroupname}
ResourceGroup        : myresourcegroupname
Description          :
Severity             : 3
Enabled              : True
Scopes               : {/subscriptions/subscriptionguid/resourceGroups/myresourcegroupname/providers/Microsoft.Sql/servers/myservername/elasticpools/myelasticpoolname}
EvaluationFrequency  : 00:01:00
WindowSize           : 00:01:00
TargetResourceType   : Microsoft.Sql/servers/elasticpools
TargetResourceRegion :
AutoMitigate         : True
LastUpdatedTime      :
IsMigrated           :
Id                   : /subscriptions/3subscriptionguid/resourceGroups/myresourcegroupname/providers/microsoft.insights/metricAlerts/alertname
Name                 : alertname
Type                 : Microsoft.Insights/metricAlerts
Location             : global
Tags                 : {}
Kind                 :
Etag                 :

我之前的命令告诉我 'TargetResourceRegion' 为空。这与上面的输出对应。但是,如何使用空的 TargetResourceRegion 从 powershell 禁用该警报规则?

我们在本地环境中对此进行了测试,以下陈述基于我们的分析。

根据 Add-AzMetricAlertRuleV2 cmdlet 文档,-DisableRule 参数属于类型 开关参数 它不要求传递任何输入参数。

在我们的本地环境中,我们已经为 webapp 创建了一个警报并且我们能够 使用以下 PowerShell Cmdlet

禁用警报
Get-AzMetricAlertRuleV2 -ResourceGroup '<ResourceGroupName> -Name '<NameofAlert>'|Add-AzMetricAlertRuleV2 -DisableRule

这里是示例输出截图以供参考:

  • 最初,我们使用 Get-AzMetricAlertRuleV2
  • 拉取了特定警报

  • 运行 相同的 cmdlet,通过添加 |Add-AzMetricAlertRuleV2 来禁用特定的指标警报规则。

更新答案:

我们还在本地环境中针对 sql 弹性池测试了此 cmdlet,使用以下 cmdlet 我们能够禁用警报。

Get-AzMetricAlertRuleV2 -ResourceGroupName '<resourcegrp>' -Name '<AlertName>'|Add-AzMetricAlertRuleV2 -DisableRule -TargetResourceRegion " "

这里是示例截图以供参考: