BadRequest, вызывающий New-AzScheduledQueryRule - Action.aznsAction.actionGroup, неправильно сформированный из командлета - PullRequest
0 голосов
/ 18 июня 2019

Я следую вместе с документацией по https://docs.microsoft.com/en-us/azure/azure-monitor/platform/alerts-log#managing-log-alerts-using-powershell и сталкиваюсь с 400 по вызову New-AzScheduledQueryRule.Когда я пытаюсь устранить неполадки, передав в командлет -Debug, я вижу, что значение action.aznsAction.actionGroup определенно станет проблемой - его значение равно [ "Microsoft.Azure.Commands.Insights.OutputClasses.PSActionGroupResource" ].

Конечно, возвращаемая ошибка из PUT API центрируется на этом элементе:

Body:
{
  "error": {
    "code": "LinkedInvalidPropertyId",
    "message": "Property id 'Microsoft.Azure.Commands.Insights.OutputClasses.PSActionGroupResource' at path 'properties.action.aznsAction.actionGroup[0]' is invalid. Expect fully qualified resource Id that start with '/subscriptions/{subscriptionId}' or '/providers/{resourceProviderNamespace}/'."
  }
}

Изначально, перед запуском моего скрипта, у меня просто была группа действий и текстовый файл kusto.для моего запроса;Я создаю все остальное с помощью командлетов:

  • New-AzScheduledQueryRuleSource, передавая мой kusto контент (работает нормально)
  • New-AzScheduleQueryRuleSchedule (работает нормально)
  • New-AzScheduledQueryRuleAznsActionGroup (передать имя моей существующей группы действий, {} для -CustomWebhookPayload - работает нормально)
  • New-AzScheduledQueryRuleLogMetricTrigger (работает отлично)
  • New-AzScheduledQueryRuleTriggerCondition - передать в новый MetricTrigger (отлично работает)
  • New-AzScheduledQueryRuleAlertingAction - передача в AznsActionGroup сверху, плюс TriggerCondition сверху - отлично работает.

Я передаю это для вызова:

New-AzScheduledQueryRule -Location eastusn -Enabled $true -Action $alertingAction -Description $Description -Schedule $schedule -Source $source -name $Rulename -ResourceGroupName $resourceGroupName -Debug

, который передает все объекты, которые я создал ранее.Все отлично смотрится в отладчике VS Code PS.Однако action JSON из вывода -Debug выглядит следующим образом, что мне кажется странным:

    "action": {
      "odata.type": "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.Microsoft.AppInsights.Nexus.DataContracts.Resources.ScheduledQueryRules.AlertingAction",
      "severity": "1",
      "aznsAction": {
        "actionGroup": [
          "Microsoft.Azure.Commands.Insights.OutputClasses.PSActionGroupResource"
        ],
        "emailSubject": "my Subject",
        "customWebhookPayload": "{}"
      },
      "throttlingInMin": 0,
      "trigger": {
        "thresholdOperator": "GreaterThan",
        "threshold": 1.0,
        "metricTrigger": {
          "thresholdOperator": "GreaterThan",
          "threshold": 1.0,
          "metricTriggerType": "Consecutive",
          "metricColumn": "Computer"
        }
      }
    }

Есть ли у людей проблемы с этим командлетом?

1 Ответ

0 голосов
/ 19 июня 2019

Я не уверен, что хочу принять этот ответ, но я заставил его работать.Если вы вручную взломали вывод объекта из $alertingAction = AzScheduledQueryRuleAlertingAction, а именно путем повторного присвоения свойству $alertingAction.AznsAction.ActionGroup[0] вывода $actionGroup Get-AzActionGroup -ResourceGroupName myRG -Name myActionGrp, как в этом блоке:

$alertingAction.AznsAction.ActionGroup[0]  = $actionGroup.Id

и затем вызов New-AzScheduledQueryRule, командлет работает, и ScheduledQueryRule создан правильно,

Это похоже на ошибку в New-AzScheduledQueryRule.

...