Я хочу получить в реальном времени текущую сумму, потраченную данным ресурсом (а не всей подпиской или группой ресурсов) в течение текущего периода в MS Azure через REST API Azure (например: в этом месяце мы потратили X $ на этот ресурс). Я копался в Billing API и общей документации REST API (а также в их SDK node.js), но не могу найти ничего, что могло бы это сделать.
Кто-нибудь когда-нибудь делал что-то подобное? Любая помощь будет оценена.
API, на который вы хотели бы взглянуть, — это Consumption API
, а операция, которую вы хотели бы использовать, — Usage Details - List
.
Обратите внимание, что:
{scope}
укажите /subscriptions/{subscriptionId}/
.$filter
.Например, если вам нужно потребление для определенной учетной записи хранения, скажем, за апрель 2019 года, критерии фильтрации выглядят следующим образом:
$filter=properties/instanceId eq '/subscriptions/{subscription-id}/resourceGroups/{resource-group-name}/providers/Microsoft.Storage/storageAccounts/{storage-account-name}' and properties/usageStart ge '2019-04-01T00:00:00.0000000Z' and properties/usageEnd lt '2019-05-01T00:00:00.0000000Z'&$expand=meterDetails,additionalProperties
Azure Платежные API можно использовать для извлечения данных об использовании и ресурсах в предпочтительные инструменты анализа данных.
Azure Resource Usage API
и Azure Resource RateCard API
могут помочь точно прогнозировать расходы и управлять ими. API-интерфейсы реализованы как поставщик ресурсов и часть семейства API-интерфейсов, предоставляемых Azure Resource Manager.
Рекомендуемые шаги
Note: Support for Pay-as-you-go, MSDN, Monetary commitment, and Monetary credit offers (EA and CSP not supported)
Note: This feature is in first version of preview and may be subject to backward-incompatible changes. Currently, it's not available for certain subscription offers (EA, CSP, AIO not supported) and Azure Germany.
Рекомендуемые документы
Если у вас все еще есть какие-либо вопросы, не стесняйтесь поделиться. Спасибо и удачного кодирования!
Обратите внимание на этот документ: Обзор API потребления Azure, здесь показано, что вы можете использовать API сведений об использовании с фильтром, чтобы получить то, что вы хотите:
- Filtering - Trim your API result set down to a smaller set of usage detail records using the following filters:
- Usage end / usage start
- Resource Group
- Resource Name
Вот формат этого API:
GET https://management.azure.com/{scope}/providers/Microsoft.Consumption/usageDetails?$expand = {$expand}&$filter = {$filter}&$skiptoken = {$skiptoken}&$top = {$top}&$apply = {$apply}&api-version=2019-01-01
Для {scope}
, за исключением того, что можно использовать «/subscriptions/{subscriptionId}/» для области действия подписки, он также может использовать «/providers/Microsoft.Billing/billingAccounts/{billingAccountId}» для области действия учетной записи для выставления счетов и т. д. Для получения более подробной информации см. документ.
Используйте $filter = {$filter}
, чтобы достичь того, чего вы хотите (доступ к конкретному ресурсу), здесь предоставлен мой API для справки:
GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Consumption/usageDetails?$expand=meterDetails,additionalProperties&$filter=properties/usageEnd ge '2019-01-1' AND properties/usageEnd le '2019-05-22' AND properties/instanceName eq '{instanceName}'&$top=30&api-version=2019-01-01
eq
means equals,ge
means greater or equal,le
means less or equal, and the instanceNmae means your specific resource name that the usage is about.
Спасибо за упоминание о «свойствах/», я пропустил это, и теперь мой запрос выполняется.
@MdFaridUddinKiron, ты прав, я забыл, спасибо за напоминание!