#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 будет показан как требуемый)