IBM Cloud:如何访问 API 进行计费和使用?

IBM Cloud: How to access the API for billing and usage?

如何使用 REST API 检索我的 IBM Cloud 帐户的使用情况和成本数据?我发现有billing related commands and I can export some data as JSON。有没有我可以使用的 API 或 SDK,最好是 Python?

以下是我使用的一些 IBM Cloud billing commands

ibmcloud billing resource-instances-usage --json

ibmcloud billing  account-usage --json

是否有对应的 API?

我找不到记录的 API 但使用跟踪查看上述命令是如何执行的。使用有效的 access_token 程序可以调用计量主机并获取帐户、资源组或所有资源实例的使用数据:

以下 URL 的 GET,帐户 ID 和月份为 YYYY-MM returns JSON 对象,包含所有资源使用情况和相关费用:

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

我编写了一个小 Python script that dumps that data or prints it as 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()

GitHub 存储库 openwhisk-cloud-usage-samples uses a serverless approach to getting data via APIs. Examples are included in the repo. It's written in Javascript, but a package it uses openwhisk-jsonetl 旨在让您可以在 YAML 中声明 URL 和参数(而不是编写代码)来请求和转换 JSON。