【问题标题】:Is there a way to get consolidated IBM Cloud billing in one api call有没有办法在一次 api 调用中获得整合的 IBM Cloud 计费
【发布时间】:2018-11-20 14:00:22
【问题描述】:

我需要获得基于组织或资源组的综合账单。比如:

    org1   $100
    org2   $200
    rg1    $150

有没有一种方法可以在一个 api 调用中得到它?我可以使用以下 cli 命令获得详细的账单:

ibmcloud billing account-usage

【问题讨论】:

标签: ibm-cloud billing


【解决方案1】:

没有单一的 API 调用可以提供每个组织的使用情况。但是有 API 调用 ibmcloud billing org-usage $org 检索单个 ORG 的使用情况。您可以编写一个小的 shell 脚本来循环调用 org 列表中的 API。

#!/bin/bash
ibmcloud login --apikey @ibmcloud_key
ibmcloud target  -o ORGNAME1 -s SPACENAME 
org_list=(ORGNAME1 ORGNAME2)
echo "Get usage for each org...." 
for org in "$org_list[@]"
do
    ibmcloud billing org-usage $org >> billing.txt
done

【讨论】:

  • 我无法从函数中调用此脚本。
  • 你使用什么编程语言来创建你的函数?上面的脚本是一个 bash 脚本。如果需要,您可以将其重构为一个函数。
  • 我正在使用 python,但是 billing.txt 会保存在哪里?当您在 bluemix 上将其作为函数运行时?
【解决方案2】:

@VidyasagarMachupalli 和@data_henrik 的回答是恰当的。虽然没有单一的 API 调用,但ibmcloud billing resource-instances-usage 提供了最接近的解决方案,因为它根据组织、空间和资源组对数据进行分段。

您可以使用电子表格(即数据透视表)进行最后一步,并对整个组织或资源组的数据进行汇总。提到的教程 - this section - 正是使用 IBM Cloud CLI、jq 和 json2csv 实现了这种方法。

ibmcloud billing resource-instances-usage --output json | jq '.[] | {month,resource_name,resource_group_name,organization_name,space_name,metric: .usage[].metric,cost : .usage[].cost}' | json2csv -f month,resource_name,resource_group_name,organization_name,space_name,metric,cost -p

┌───────────────┬──────────────────────────────┬──────────────────────────────────────────┬──────────────────────────────────────┬────────────────────────┬────────────────┬───────────────┐
│ "month"       │ "resource_name"              │ "resource_group_name"                    │ "organization_name"                  │ "space_name"           │ "metric"       │ "cost"        │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│               │                              │                                          │                                      │                        │ "AUTHORIZED_US │               │
│ "2018-11"     │ "Continuous Delivery"        │ "default"                                │ ""                                   │ ""                     │ ERS_PER_MONTH" │ 0             │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│               │                              │                                          │                                      │                        │ "AUTHORIZED_US │               │
│ "2018-11"     │ "Continuous Delivery"        │ "default"                                │ ""                                   │ ""                     │ ERS_PER_MONTH" │ 0             │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│               │                              │                                          │                                      │                        │ "JOB_EXECUTION │               │
│ "2018-11"     │ "Continuous Delivery"        │ "default"                                │ ""                                   │ ""                     │ S_PER_MONTH"   │ 0             │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│               │                              │                                          │                                      │                        │ "JOB_EXECUTION │               │
│ "2018-11"     │ "Continuous Delivery"        │ "default"                                │ ""                                   │ ""                     │ S_PER_MONTH"   │ 0             │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│               │                              │                                          │                                      │                        │ "DEVOPS_INSIGH │               │
│ "2018-11"     │ "DevOps Insights"            │ "default"                                │ ""                                   │ ""                     │ TS_ITEMS"      │ 0             │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│               │                              │                                          │                                      │                        │ "instance_hour │               │
│ "2018-11"     │ "Kubernetes Service"         │ "default"                                │ ""                                   │ ""                     │ s"             │ 0             │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│               │                              │                                          │                                      │                        │ "DATA_POINTS_P │               │
│ "2018-11"     │ "Monitoring"                 │ ""                                       │ "van_org"                            │ "dev"                  │ ER_MONTH"      │ 0             │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│               │ "IBM Bluemix Platform Runtim │                                          │                                      │                        │ "GB_HOURS_PER_ │               │
│ "2018-11"     │ e"                           │ ""                                       │ "van_org"                            │ "dev"                  │ MONTH"         │ 0.00035       │
├───────────────┼──────────────────────────────┼──────────────────────────────────────────┼──────────────────────────────────────┼────────────────────────┼────────────────┼───────────────┤
│               │                              │                                          │                                      │                        │ "GB_HOURS_PER_ │ 3.51056366597 │
│ "2018-11"     │ "IBM Bluemix Node.js"        │ ""                                       │ "van_org"                            │ "dev"                  │ MONTH"         │ 2222          │

【讨论】:

  • 我试过了,但这不是我可以在函数或 lambda 中运行的解决方案。有更好的方法吗?
  • CLI 与 API 通信;您将在函数中模仿相同的方法。设置 IBMCLOUD_TRACE=true 环境变量并运行命令,然后您将看到 CLI 正在执行的 RESTful 调用。教程中引用的Cloud Usage sample application 使用 Cloud Functions 检索计费数据。
【解决方案3】:

IBM Cloud 为 usage meteringusage reports 提供 API。集成的API overview page in the IBM Cloud docs 将它们列在平台服务下。

我也推荐这个IBM Cloud solution tutorial on reviewing cloud usage 作为介绍。我刚查了一下,它还没有新的 API,但仍然值得一读。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-16
    • 2020-11-10
    • 2020-04-24
    • 2012-11-04
    • 1970-01-01
    • 2019-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多