Мне было бы интересно получить данные Azure Управление затратами (особенно Амортизированная стоимость). На первый взгляд, набор пакетов AzureR кажется хорошей отправной точкой.
Можно ли каким-то образом использовать AzureAuth, чтобы авторизовать меня, а затем попытаться использовать REST API? На данный момент мне даже не удалось правильно использовать AzureAuth, поскольку я не понимаю параметры.
Кто-нибудь из вас работает с этими данными в R? Как вы получаете это? Сохранение файла CSV в Azure Portal - ужасный опыт, потому что для установки правильных фильтров требуется много времени, и Microsoft время от времени меняет схему экспорта. Например, сегодня несколько столбцов исчезли (например, тип ресурса) при группировке по тегу.
Любая помощь будет высоко ценится:)
Редактировать : Благодаря помощи Hong Ooi (https://github.com/Azure/AzureR/issues/6) Теперь мне удалось подключиться к API управления затратами с помощью AzureRMR:
library(AzureRMR)
az <- create_azure_login()
sub1 <- az$get_subscription(my_sub_guid)
d1 <- sub1$do_operation("providers/Microsoft.CostManagement/query", api_version = "2019-11-01", http_verb = "POST", encode = "json",
body = list(
timeframe = "Custom",
timePeriod = list(
from = "2020-04-01",
to = "2020-04-01"
),
type = "AmortizedCost",
dataset = list(
granularity = "daily"
)
))
Что я до сих пор не знаю, это:
- Как отправить тело как JSON, а не список списков?
- Как получить ответ как JSON?
- Как получить больше столбцов в ответе? Мне особенно нужны Имя ресурса и Тип ресурса.
Редактировать 2 : Пример ответа:
response_example <-
list(properties = list(
nextLink = NULL,
columns = list(
list(name = "UsageDate",
type = "Number"),
list(name = "Currency",
type = "String")
),
rows = list(
list(as.integer(20200401),
"EUR"),
list(as.integer(20200402),
"EUR")
)
))
Что я хочу сделать, это получить фрейм данных из ответа. Я нашел рабочее решение, но оно выглядит ужасно:
d1_ <- do.call(what = "rbind", args = lapply(d1$properties$rows, as_tibble, .name_repair = "unique"))
colnames(d1_) <- do.call(what = "rbind", args = lapply(d1$properties$columns, as_tibble, .name_repair = "unique")) %>%
select(name) %>% pull()