IBM Cloud: как получить доступ к API для выставления счетов и использования? - PullRequest
0 голосов
/ 14 сентября 2018

Как я могу получить данные об использовании и стоимости для моей учетной записи IBM Cloud с помощью REST API? Я обнаружил, что есть команды, связанные с выставлением счетов, и я могу экспортировать некоторые данные в формате JSON . Можно ли использовать API или SDK, в идеале Python?

Вот некоторые из команд биллинга IBM Cloud , которые я использую:

ibmcloud billing resource-instances-usage --json

ibmcloud billing  account-usage --json

Существуют ли для этого эквивалентные API?

Ответы [ 2 ]

0 голосов
/ 14 сентября 2018

GitHub repo openwhisk-cloud-Использование-samples использует безсерверный подход для получения данных через API.Примеры включены в репо.Он написан на Javascript, но пакет, в котором он используется openwhisk-jsonetl , был разработан таким образом, чтобы вы могли объявлять URL-адреса и параметры в YAML (а не писать код) для запроса и преобразования JSON.

0 голосов
/ 14 сентября 2018

Я не смог найти документированный API, но использовал трассировку, чтобы увидеть, как выполняются вышеуказанные команды. Используя действительный токен доступа, программа может вызвать узел измерения и получить данные об использовании для учетной записи, группы ресурсов или всех экземпляров ресурса:

GET по следующему URL с идентификатором учетной записи и месяцем, когда YYYY-MM возвращает объект JSON со всем использованием ресурсов и связанными затратами:

https://metering-reporting.ng.bluemix.net/v4/accounts/account_id/resource_instances/usage/?_limit=100&_names=true

Я кодировал небольшой Python-скрипт, который выводит эти данные или печатает их как CSV .

def processResourceInstanceUsage(account_id, billMonth):
    METERING_HOST="https://metering-reporting.ng.bluemix.net"
    USAGE_URL="/v4/accounts/"+account_id+"/resource_instances/usage/"+billMonth+"?_limit=100&_names=true"

    url=METERING_HOST+USAGE_URL
    headers = {
        "Authorization": "{}".format(iam_token),
        "Accept": "application/json",
        "Content-Type": "application/json"
    }
    response=requests.get(url, headers=headers)
    print ("\n\nResource instance usage for first 100 items")
    return response.json()
...