一个简单的问题,尝试使用Powershell Azure ARM禁用/启用我的Application Insights可用性测试。我们已经计划了服务器的重新启动,因此我希望在这些时间不使用这些时间,以便我们不会记录错误。
我尝试了以下
$alert = Get-AzureRmAlertRule -ResourceGroupName $resourceGroup `
| Where-Object {$_.Name -like '*isalive*'} `
| Where-Object {$_.Name -like "*$vmName*"}
Add-AzureRmWebtestAlertRule -Name $alert.Name `
-Location $alert.Location `
-ResourceGroupName $resourceGroup `
-WindowSize $alert.Condition.WindowSize `
-MetricName $alert.Condition.DataSource.MetricName `
-TargetResourceUri $alert.Id `
-FailedLocationCount $alert.Condition.FailedLocationCount `
-DisableRule `
-Verbose
但我回来了
警告:下午3:34:18-所有模型类的名称空间将 从Microsoft.Azure.Management.Monitor.Management.Models更改为 未来版本中的Microsoft.Azure.Management.Monitor.Models。
警告:下午3:34:18-输出类的名称空间在将来的发行版中对于所有类都是统一的,以使其独立于 在模型类中进行修改。
详细:在目标“创建/更新警报规则”上执行“创建/更新警报规则”操作:azecdag02 isalive-sitecore 资源组中的production-2c06a496-3567-4871-a57c-2c516c0ccfef: OAT_Website”。
VERBOSE:下午3:34:18-CreateRuleCondition:创建位置阈值规则条件(网络测试规则)
VERBOSE:下午3:34:18-CreateSdkCallParameters:创建规则对象
Add-AzureRmWebtestAlertRule:异常类型:ErrorResponseException,消息:该设置已存在。,代码: SettingAlreadyExists,状态代码:冲突,原因短语:冲突 在第1行:char:1 + Add-AzureRmWebtestAlertRule` + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:CloseError :( :) [Add-AzureRmWebtestAlertRule],PSInvalidOperationException + FullyQualifiedErrorId:Microsoft.Azure.Commands.Insights.Alerts.AddAzureRmWebtestAlertRuleCommand
如果我尝试Resolve-AzureRmError -Last
我会得到
HistoryId:80
消息:异常类型:ErrorResponseException,消息: 设置已经存在。,代码:SettingAlreadyExists,状态 代码:冲突,原因短语:冲突StackTrace:位于 Microsoft.Azure.Commands.Insights.MonitorCmdletBase.ExecuteCmdlet() 在Microsoft.WindowsAzure.Commands.Utilities.Common.AzurePSCmdlet.ProcessRecord() 例外情况: System.Management.Automation.PSInvalidOperationException InvocationInfo:{Add-AzureRmWebtestAlertRule}行: Add-AzureRmWebtestAlertRule` 位置:在线:1字符:1 + Add-AzureRmWebtestAlertRule + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ HistoryId:80
消息:操作返回了无效的状态码“冲突” StackTrace:位于 Microsoft.Azure.Management.Monitor.AlertRulesOperations.d__5.MoveNext() 例外情况: Microsoft.Azure.Management.Monitor.Models.ErrorResponseException InvocationInfo:{Add-AzureRmWebtestAlertRule}行: Add-AzureRmWebtestAlertRule` 位置:在线:1字符:1 + Add-AzureRmWebtestAlertRule + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ HistoryId:80
答案 0 :(得分:1)
我终于能够使它正常工作,请参见以下脚本。
#later versions of AzureRM don't support Find
#Get-AzureRmResources -ResourceGroupName "My_Website"
$allAlerts = Find-AzureRmResource -ResourceGroupNameEquals "OAT_Website" `
| Where-Object -Property ResourceType -EQ "microsoft.insights/webtests" ;
$vmPrefix = "azesc"
$color = "blue"
$status = "True"
$alertIDs = $allAlerts | Where-Object {$_.Name -like "*$vmPrefix*" -or $_.Name -like "*$color*" } `
| Select-Object -ExpandProperty ResourceId
ForEach ($alertID in $alertIDs) {
$alert = Get-AzureRMResource -ResourceId $alertID
$alert.Properties.Enabled = $status
$alert | Set-AzureRMResource -Force
}
$vmPrefix = "azec"
$color = "green"
$status = "False"
$alertIDs = $allAlerts | Where-Object {$_.Name -like "*$vmPrefix*" -or $_.Name -like "*$color*" } `
| Select-Object -ExpandProperty ResourceId
ForEach ($alertID in $alertIDs) {
$alert = Get-AzureRMResource -ResourceId $alertID
$alert.Properties.Enabled = $status
$alert | Set-AzureRMResource -Force
}