我在这里遇到一个奇怪的问题。 我正在尝试使用Powershell为我的所有存储帐户创建单独的可用性警报。 我的代码是这个
$storageaccounts= get-azstorageaccount |get-azresource
$criteria = New-AzMetricAlertRuleV2Criteria -MetricName "Availability" `
-TimeAggregation average `
-Operator lessthan `
-Threshold 100
foreach ($storageaccount in $storageaccounts){
Add-AzMetricAlertRuleV2 -Name "$storageaccount.Name availbility" `
-ResourceGroupName $RG.ResourceGroupName `
-WindowSize 00:05:00 `
-Frequency 00:01:00 `
-Description "Catching storageaccount availbility" `
-condition $criteria `
-ActionGroup $action `
-Severity 3 `
-TargetResourceId "$storageaccount.resourceid"
}
但是我一直收到此错误
Add-AzMetricAlertRuleV2 : Exception type: ErrorResponseException,
Message: Null/Empty, Code: Null, Status code:BadRequest, Reason phrase: Bad Request
我认为问题是由于
Add-AzMetricAlertRuleV2 -Name "$storageaccount.Name availbility"
如果将storageaccount.name放在双引号中,我会得到
Microsoft.Azure.Commands.ResourceManager.Cmdlets.SdkModels.PSResource.Name
我也尝试过
foreach ($storageaccount in $storageaccounts){
$sa=[string]$storageaccount.Name
Add-AzMetricAlertRuleV2 -Name "$sa availbility"
但仍然给我同样的错误
我该如何解决?
答案 0 :(得分:0)
您使用的命令中有两个问题:
"$($storageaccount.StorageAccountName) availbility"
更新的代码:
Add-AzMetricAlertRuleV2 -Name "$($storageaccount.StorageAccountName) availbility" `
-ResourceGroupName $RG.ResourceGroupName `
-WindowSize 00:05:00 `
-Frequency 00:01:00 `
-Description "Catching storageaccount availbility" `
-condition $criteria `
-ActionGroup $action `
-Severity 3 `
-TargetResourceId $storageaccount.id