Microsoft.Insights/scheduledQueryRules не может обновить область

Проблема в основном заключается в том, что я пытался обновить уже существующий ресурс «Microsoft.Insights/scheduledQueryRules» в Azure, но получил ошибку: «Область не может быть обновлена ​​(неверный запрос)».

Я загрузил ARM для обновления уже существующего ресурса, надеясь, что смогу изменить область действия, потому что я создал новый AppInisghts, но он выдал ошибку выше.

Я почти уверен, что ответ заключается в том, что такого рода ресурсы не могут обновлять свои области действия. Но почему? «Microsoft.Insights/metricAlerts» может это сделать :(

После небольшого исследования я нашел эту проблему в соответствующей документации по переносу оповещений https://github.com/MicrosoftDocs/azure-docs/issues/108608

Просто хотел убедиться, что я не могу обновить область действия, и если это правда, предупредите всех этим сообщением, чтобы они не теряли время на поиск решения (потому что я не нашел ничего проясняющего в официальных документах).

Спасибо всем.

ПД: Я уверен, что удаление ресурса и его повторное создание помогут, но сейчас я не могу этого сделать.

Код ARM, который вы можете использовать для проверки моей проблемы:

  • Предварительное условие: иметь существующий ресурс с установленной областью действия.

      {
    "type": "Microsoft.Insights/scheduledQueryRules",
    "apiVersion": "2022-08-01-preview",
    "name": "string",
    "location": "string",
    "tags": {
      "tagName1": "tagValue1",
      "tagName2": "tagValue2"
    },
    "kind": "string",
    "identity": {
      "type": "string",
      "userAssignedIdentities": {}
    },
    "properties": {
      "actions": {
        "actionGroups": [ "string" ],
        "customProperties": {}
      },
      "scopes": [ PUT NEW SCOPE HERE ],
    }
    

    }

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
205
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Если вы хотите обновить существующий код в ARM, вам необходимо выполнить следующие шаги, поскольку невозможно обновить свойство scope напрямую после завершения развертывания.

Обратитесь к MSDoc для получения информации о соответствующих функциях.

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

Если вы попытаетесь обновить расположение, тип или область существующего ресурса, развертывание завершится ошибкой. Вместо этого разверните новый ресурс с нужным вам расположением или типом.

Но описанная выше функциональность не подходит для вашей среды, как вы упомянули в этом утверждении.

Я уверен, что удаление ресурса и его повторное создание помогут, но сейчас я не могу этого сделать.

Альтернативный подход — использование опции export template под ресурсом.

Чтобы добиться этого, сначала я развернул правило запланированного запроса Insight с областью действия в качестве идентификатора ресурса виртуальной машины, и развертывание завершилось успешно, как показано ниже.

Теперь перейдите на этот развернутый ресурс на портале и посетите Automation >> Export Template, как показано ниже.

См. Шаблон экспорта MS Doc.

После создания соответствующего шаблона Json нажмите кнопку Deploy, и вы перенаправитесь на страницу custom deployment. Теперь выберите опцию Edit template в верхней части страницы и добавьте приведенный ниже код с измененной областью действия (workspace ID), как показано ниже.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "metricAlerts_mylatalertj_name": {
            "defaultValue": "mylatalertj",
            "type": "String"
        },
        "workspace_externalid": {
            "defaultValue": "/subscriptions/xxxxx/resourcegroups/xxxxx/providers/microsoft.operationalinsights/workspaces/newwsj",
            "type": "String"
        },
        "actiongroups_newact_externalid": {
            "defaultValue": "/subscriptions/xxxxx/resourceGroups/xxxxx/providers/microsoft.insights/actiongroups/newact",
            "type": "String"
        }
    },
    "variables": {},
    "resources": [
        {
            "type": "Microsoft.Insights/metricAlerts",
            "apiVersion": "2018-03-01",
            "name": "[parameters('metricAlerts_mylatalertj_name')]",
            "location": "global",
            "tags": {
                "Reason": "Repro",
                "CreatedDate": "2/26/2024 8:08:20 AM",
                "CreatedBy": "NA",
                "OwningTeam": "NA"
            },
            "properties": {
                "description": "This is a metric alert",
                "severity": 3,
                "enabled": true,
                "scopes": [
                    "[parameters('workspace_externalid')]"
                ],
                "evaluationFrequency": "PT1M",
                "windowSize": "PT5M",
                "criteria": {
                    "allOf": [
                        {
                            "threshold": 0,
                            "name": "1st criterion",
                            "metricName": "<Metric Name>", //As per your requirement
                            "operator": "GreaterThan",
                            "timeAggregation": "Average",
                            "criterionType": "StaticThresholdCriterion"
                        }
                    ],
                    "odata.type": "Microsoft.Azure.Monitor.MultipleResourceMultipleMetricCriteria"
                },
                "actions": [
                    {
                        "actionGroupId": "[parameters('actiongroups_newact_externalid')]"
                    }
                ]
            }
        }
    ]
}

После применения изменений нажмите Save и перейдите к Review + create,, затем выберите Create. Это инициирует развертывание обновленного ресурса с существующей конфигурацией путем изменения нового свойства scope и значения.

Спасибо большое за ответ, но поправьте меня, если я ошибаюсь. Разве ваше решение не основано на metricAlert? Фактически metricAlerts позволяет изменять область действия как угодно, через портал и через ARM. Моя проблема связана с «Microsoft.Insights/scheduledQueryRules», в частности, с этим, даже если вы зайдете на портал и попытаетесь отредактировать область вручную, вы увидите неактивную «область редактирования». Возможно, я что-то упускаю из вашего ответа, но на ваших изображениях я вижу только metricAlert.

jaumecen 26.02.2024 13:30

Как и в случае с оповещениями о метриках, вы можете попробовать использовать правила запланированных запросов, и они будут работать через собственный шаблон портала. Можете ли вы попробовать один раз? @jaumecen

Jahnavi 26.02.2024 15:56

Я также обновлю правило запланированного запроса. @jaumecen

Jahnavi 26.02.2024 15:56

Возможно, я не совсем ясно выразился по исходному вопросу, но моя цель здесь — обновить сам ресурс. Если это невозможно сделать, это нормально, я хотел бы знать, почему с помощью «metricAlert» вы можете и почему «scheduledqueryrule» нет (если вы мне не верите, зайдите на портал и попробуйте отредактировать оба этих ресурса, и вы увидите, что он неактивен для «scheduledqueryrule». Я очень ценю вашу помощь @jahnavi.

jaumecen 01.03.2024 14:49

К сожалению, это не решило проблему

jaumecen 05.03.2024 09:55

Пробовали ли вы ту же функциональность для правила запланированного запроса? @jaumecen

Jahnavi 05.03.2024 11:18

Да, я получаю сообщение об ошибке «Область не может быть обновлена» в сведениях о развертывании.

jaumecen 05.03.2024 12:14
Ответ принят как подходящий

Я только что попробовал простой Microsoft.Insights/scheduledQueryRules rest API

Простой API для отдыха устраняет неопределенность, вызванную шаблоном руки.

повторно выдает то же сообщение об ошибке, я думаю, что это встроенная функция. Рекомендуется напрямую изменить имя оповещения и повторно развернуть новое оповещение.

Да, я так и думал... Хуже всего то, что я не нашел этого явно ни в одной документации, я ценю это и отмечу это как ответ.

jaumecen 13.03.2024 15:13

Другие вопросы по теме