所以,我需要在我们所有的存储帐户上创建类似100个警报的东西。由于这将是非常重复的,我试图脚本。
我有一个循环,可以获取所有相关的存储帐户。然而,我对创建警报有一些问题。
我可以让Azure Powershell来创建警报,但我需要在操作中传递自定义属性,因为它转到逻辑应用程序。属性用于决定如何处理警报。
到目前为止我有:
$actionGroupId = New-AzActivityLogAlertActionGroupObject -Id $actionGroup.Id
$availabilityCriteria = New-AzMetricAlertRuleV2Criteria `
-MetricName "Availability" `
-TimeAggregation Average `
-Operator LessThan `
-Threshold 100
Select-AzSubscription -SubscriptionId "********-****-****-****-***********"
$storage = Get-AzStorageAccount -ResourceGroupName "****-testing" -Name "storageaccount"
Add-AzMetricAlertRuleV2 -Name "$($storage.StorageAccountName) availability alert" `
-ResourceGroupName ****-testing `
-WindowSize 00:05:00 `
-Frequency 00:05:00 `
-Description "This is a test" `
-Condition $availabilityCriteria `
-ActionGroupId $actionGroupId.Id `
-Severity 2 `
-TargetResourceId $storage.Id
字符串
我需要一个自定义属性,即在通过Azure门户创建警报时出现在“操作”选项卡上的属性。
x1c 0d1x的数据
我假设这与行动组有关,因为在选择行动组之前,你不能设置这个。但是,我在文档中找不到任何提到New-AzActivityLogAlertActionGroupObject、New-AzMetricAlertRuleV 2Criteria或Add-AzMetricAlertRuleV 2的自定义属性的内容。
我错过了什么?干杯
更新:我现在尝试了几个迭代:
$actionGroup = Get-AzActionGroup
$newActionGroup = New-AzActivityLogAlertActionGroupObject -Id $actionGroup.Id -WebhookProperty = @{ "propertyName"="propertyValue"}
Add-AzMetricAlertRuleV2 -Name "$($storage.StorageAccountName) availability alert" `
-ResourceGroupName ****-testing `
-WindowSize 00:05:00 `
-Frequency 00:05:00 `
-Description "This is a test" `
-Condition $availabilityCriteria `
-Actions $newActionGroup `
-Severity 2 `
-TargetResourceId $storage.Id
型
但我总是收到这样的错误
进一步编辑:现有操作组和存储帐户位于不同的订阅中。
下面是完整的代码,包括获取ActionGroup和Storage Account:
Select-AzSubscription -SubscriptionId "<ActionGroupSubscriptionId>"
$existingActionGroup = Get-AzActionGroup
$newActionGroup = New-AzActivityLogAlertActionGroupObject -Id $existingActionGroup.Id -WebhookProperty @{"sampleWebhook"="Value"} | convertFrom-json
$availabilityCriteria = New-AzMetricAlertRuleV2Criteria `
-MetricName "Availability" `
-MetricNamespace "Microsoft.Storage/storageAccounts" `
-TimeAggregation Average `
-Operator LessThan `
-Threshold 100
Select-AzSubscription -SubscriptionId "<StorageAccountSubscriptionId>"
$storage = Get-AzStorageAccount -ResourceGroupName "<StorageAccountResourceGroup>" -Name "<StorageAccount>"
Add-AzMetricAlertRuleV2 -Name "$($storage.StorageAccountName) availability alert" `
-ResourceGroupName <StorageAccountResourceGroup> `
-WindowSize 00:05:00 `
-Frequency 00:05:00 `
-Description "This is a test" `
-Condition $availabilityCriteria `
-Actions $newActionGroup `
-Severity 2 `
-TargetResourceId $storage.Id
型
1条答案
按热度按时间irlmq6kh1#
我在我的环境中尝试时也收到了同样的错误。
的数据
错误是由于
json
类型转换导致的,因为Add-AzMetricAlertRuleV2
中参数"-ActionGroup"
的类型是"Microsoft.Azure.Management.Monitor.Models.ActivityLogAlertActionGroup []
。有关更多相关信息,请参阅此github问题。字符串
的