Удаление вложенного объекта pscustomobject в правиле JSON Azure - PullRequest
0 голосов
/ 27 ноября 2018

Были проблемы с удалением вложенного объекта в JSON, возвращенного из запроса правила оповещения Azure.

Благодаря ребятам, я узнал, как добавить объект PSCustomObject в другой.В этом случае (ниже) для добавления действия веб-крюка

"actions": [
    {
        "$type": "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.RuleEmailAction, Microsoft.WindowsAzure.Management.Mon.Client",
        "odata.type": "Microsoft.Azure.Management.Insights.Models.RuleEmailAction",
        "sendtoserviceowners": true,
        "customEmails": [
            "email2@domain.com",
            "email1@domain.com"
        ]
    }
]
$rule.properties.actions += [PSCustomObject]@{
    '$type' = "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.RuleWebhookAction, Microsoft.WindowsAzure.Management.Mon.Client";
    'odata.type' = "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.RuleWebhookAction";
    serviceuri = "http://www.webhooktest.com"
}

, что приводит к

"actions": [
    {
        "$type": "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.RuleWebhookAction, Microsoft.WindowsAzure.Management.Mon.Client",
        "odata.type": "Microsoft.Azure.Management.Insights.Models.RuleWebhookAction",
        "serviceUri": "http://www.webhooktest.com"
    },
    {
        "$type": "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.RuleEmailAction, Microsoft.WindowsAzure.Management.Mon.Client",
        "odata.type": "Microsoft.Azure.Management.Insights.Models.RuleEmailAction",
        "sendToServiceOwners": false,
        "customEmails": [
            "email2@domain.com",
            "email1@domain.com"
        ]
    }
]

Мне нужно иметь возможность удалить веб-крючок и оставить сообщение электронной почты.Если бы я мог добавить его с помощью +=, почему попытка удалить его с помощью -=

$rule.properties.actions -= [PSCustomObject]@{
    '$type' = "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.RuleWebhookAction, Microsoft.WindowsAzure.Management.Mon.Client";
    'odata.type' = "Microsoft.WindowsAzure.Management.Monitoring.Alerts.Models.RuleWebhookAction";
    serviceuri = "http://www.webhooktest.com"
}

приводит к

результату в [System.Object []]не содержит метод с именем 'op_Subtraction'

Мне тоже не повезло с методом Remove().Что будет работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...