Сообщение об ошибке при создании запроса к диспетчеру ресурсов в рабочей книге Azure Monitor

#azure #azure-billing-api #azure-monitor-workbooks

#azure #azure-billing-api #azure-monitor-workbooks

Вопрос:

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

Когда я создаю запрос и запускаю его, я получаю следующее сообщение об ошибке:

Неверный запрос: неверное определение запроса, набор данных недействителен или не предоставлен.

Однако в документации для этого вызова REST API конкретно указано, что datasets свойство тела не требуется.

Документы: https://learn.microsoft.com/en-us/rest/api/cost-management/query/usage

Скриншот документов:

введите описание изображения здесь

Вот скриншот того, как выглядит мой запрос в рабочей книге:

введите описание изображения здесь

Вопрос: Как мне правильно создать тело для этого запроса, если в документации это не объясняется должным образом?

Комментарии:

1. это нормально, если вы оставите поле dataset вне запроса? наличие его там , но пустой строки может быть недопустимым? (можете ли вы сделать просто { timeframe ... type... } ?

2. и, если документы неверны, я бы предложил использовать большие пальцы в самих документах и отправить отзыв о том, что они неверны, чтобы их можно было исправить

Ответ №1:

На самом деле, в этом документе по api приводится множество примеров, вы можете щелкнуть любой из примеров для получения сведений о теле запроса.

Возьмем, к примеру, BillingAccountQuery-Modern, текст запроса такой, как показано ниже (вы можете изменить его в соответствии с вашими потребностями):

 {
  "type": "Usage",
  "timeframe": "MonthToDate",
  "dataset": {
    "granularity": "Daily",
    "filter": {
      "and": [
        {
          "or": [
            {
              "dimension": {
                "name": "ResourceLocation",
                "operator": "In",
                "values": [
                  "East US",
                  "West Europe"
                ]
              }
            },
            {
              "tag": {
                "name": "Environment",
                "operator": "In",
                "values": [
                  "UAT",
                  "Prod"
                ]
              }
            }
          ]
        },
        {
          "dimension": {
            "name": "ResourceGroup",
            "operator": "In",
            "values": [
              "API"
            ]
          }
        }
      ]
    }
  }
}
  

Комментарии:

1. Но документация ясно показывает, что dataset параметр не является обязательным. Вы видели скриншот в моем сообщении?

2. @Тревор Салливан, да, я это видел. Хотя там сказано, что dataset это не обязательно, но на самом деле вам нужно, по крайней мере, указать dataset с granularity , вот так: { "dataset": {"granularity": "Daily"}, "type": "ActualCost","timeframe": "BillingMonthToDate"} . В противном случае он выдаст ошибку.

3. @TrevorSullivan, здравствуйте, если ответ полезен, не могли бы вы принять его как ответ? Спасибо.

4. (на самом деле, случайно этот появился в ВЕРХНЕЙ части stackoverflow для меня, поэтому я подумал, что это что-то новое. Если я сейчас посмотрю документы api, параметр dataset будет показан как требуемый)