通过 PS 添加 Azure 警报时出现问题

Issues Adding Azure Alerts via PS

我正在尝试自动执行 Azure 资源(现在特别是 VM,但以后会更多)的 creation/assignment 警报,我觉得我已经正确设置了所有内容,但我遇到了一个问题每次请求错误。 Google 令人惊讶的是,这对我来说并没有太多帮助,似乎没有很多与此相关的故障排除文档。

这是我到目前为止的内容(如果在 SO 中太乱,我可以粘贴到 GitHub)

$Dim = New-AzMetricAlertRuleV2DimensionSelection -DimensionName "Computer" -ValuestoInclude "*"
$Condition = New-AzMetricAlertRuleV2Criteria -MetricName "Percentage CPU" -DimensionSelection $dim -TimeAggregation average -Operator GreaterThan -Threshold 95
$Target = Get-AzVM -Name [ServerName]
$ActionGroup = (Get-AzActionGroup -Name "[AGName]" -ResourceGroupName "[RGName]")
$AGID = New-AzActionGroup -ActionGroupId $ActionGroup.Id
Add-AzMetricAlertRuleV2 -Name "[ServerName] CPU Above 95%" -ResourceGroupName $Target.ResourceGroupName -WindowSize 0:5 -Frequency 0:5 -TargetResourceType "Microsoft.Compute/virtualMachines" -TargetResourceScope $Target.Id -TargetResourceRegion $Target.Location -Condition $Condition -ActionGroup $AGID -Severity 0

下面是我得到的错误:

Add-AzMetricAlertRuleV2 : Exception type: ErrorResponseException, Message: Null/Empty, Code: Null, Status

code:BadRequest, Reason phrase: Bad Request

At line:8 char:1

+ Add-AzMetricAlertRuleV2 -Name "[ServerName] Above 95%" -ResourceGrou ...

现在,我认为它是说某些东西即将变为空,但它没有具体说明。它只是说明 null/empty

所以我在这个脚本中有两个问题,都是通过将 $DebugPreference 设置为 'Continue'

发现的
  1. 警报规则中有一个 % 符号,由于 URL 原因无法完成 API 调用

  2. 更正后,我得到了这个

    Add-AzMetricAlertRuleV2 : Exception type: ErrorResponseException, Message: The metric Percentage CPU specifies a
    dimension Computer which was not found. Activity ID: 9dc915e6-11d2-4ecd-bf0b-835d12e4051f., Code: BadRequest, Status
    code:BadRequest, Reason phrase: BadRequest
    
  3. 一旦我删除了 $dim 行并从我的参数中删除了 -DimensionSelection 选项,警报就成功创建了