LoginSignup
0

More than 3 years have passed since last update.

IBM Cloud Object Storage (ICOS) の課金詳細を API で取得する

Last updated at Posted at 2019-07-29

カスタマーポータルで確認できる情報

使用状況

「使用状況の詳細」から、利用量のメトリクスについて確認できます。

Kobito.tcKPRU.png

課金情報

「請求および使用量>使用量」から、各サービスインスタンスの課金情報について確認できます。

Kobito.xgm8h6.png

API で取得する

上記の情報に相当する情報を、API で取得してみます。

アカウント ID の取得

アカウント ID の指定が必要なため、以下の方法で取得します。

アカウント ID の取得 (CLI)

IBM Cloud コマンド ibmcloud login でログインした上で、以下のコマンドを実行して取得します。

export ACCOUNT_ID=`ibmcloud account show | head -n 5 | tail -n 1 | awk '{print $3}'`
echo $ACCOUNT_ID

アカウント ID の取得 (GUI)

Kobito.LaUZpw.png

リソースインスタンス ID の取得

リソースインスタンス ID の指定が必要なため、以下の方法で取得します。

リソースインスタンス ID の取得 (CLI)

IBM Cloud コマンド ibmcloud login でログインした上で、以下のコマンドを実行して取得します。

export RESOURCE_INSTANCE_ID=`ibmcloud resource search Cloud_Object_Storage-z1 | head -n 7 | tail -n 1 | awk '{print $2}'`
echo $RESOURCE_INSTANCE_ID

リソースインスタンス ID の取得 (GUI)

Kobito.bSuMHo.png

IAM トークンの取得

IBM Cloud コマンド ibmcloud login でログインした上で、以下のコマンドを実行して取得します。

export ACCESS_TOKEN=`ibmcloud iam oauth-tokens | head -n 1 | awk '{print $4}'`
echo $ACCESS_TOKEN

請求月の指定

billingmonth2019-07 などとしてください。

export BILLING_MONTH="2019-07"

(Option) リージョンの指定

regionjp-tok などとしてください。

export REGION="jp-tok"

Billing API で確認

getBillingInfo
curl -X "GET" "https://billing.cloud.ibm.com/v4/accounts/$ACCOUNT_ID/resource_instances//usage/$BILLING_MONTH?resource_instance_id=$RESOURCE_INSTANCE_ID&region=$REGION" \
-H "Authorization: Bearer $ACCESS_TOKEN"
result.json
{
    "limit": 30,
    "count": 1,
    "first": {
        "href": "/v4/accounts/039dbe6794084c7cb514a276dd2xxxxx/resource_instances/usage/2019-07?_limit=30&_names=false&region=jp-tok&resource_instance_id=crn%3Av1%3Abluemix%3Apublic%3Acloud-object-storage%3Aglobal%3Aa%2F039dbe6794084c7cb514a276dd2345da%3A74c0783c-c36b-4cc0-80ff-ddf97c0xxxxx%3A%3A"
    },
    "resources": [
        {
            "account_id": "039dbe6794084c7cb514a276dd2xxxxx",
            "resource_instance_id": "crn:v1:bluemix:public:cloud-object-storage:global:a/039dbe6794084c7cb514a276dd2345da:74c0783c-c36b-4cc0-80ff-ddf97c0xxxxx::",
            "resource_group_id": "ab4ffab2732e4853966ef2a6aa0xxxxx",
            "month": "2019-07",
            "pricing_country": "USA",
            "billing_country": "USA",
            "currency_code": "USD",
            "plan_id": "744bfc56-d12c-4866-88d5-dac9139xxxxx",
            "resource_id": "dff97f5c-bc5e-4455-b470-411c3edxxxxx",
            "billable": true,
            "pricing_plan_id": "billable:v4:744bfc56-d12c-4866-88d5-dac9139xxxxx:jp-tok:1551398400000:",
            "pricing_region": "jp-tok",
            "region": "jp-tok",
            "usage": [
                {
                    "metric": "STANDARD_STORAGE",
                    "unit": "GIGABYTE",
                    "price": [
                        {
                            "unitQuantity": "1",
                            "tier_model": "Step Tier",
                            "price": 0.0249,
                            "quantity_tier": "499999"
                        },
                        {
                            "unitQuantity": "1",
                            "tier_model": "Step Tier",
                            "price": 0.0226,
                            "quantity_tier": "999999999"
                        }
                    ],
                    "quantity": 4.499684461392462,
                    "cost": 0.1048136177281128,
                    "rated_cost": 0.1048136177281128,
                    "rateable_quantity": 4.499684461392462,
                    "discounts": []
                },
                {
                    "metric": "STANDARD_BANDWIDTH",
                    "unit": "GIGABYTE",
                    "price": [
                        {
                            "unitQuantity": "1",
                            "tier_model": "Step Tier",
                            "price": 0.14,
                            "quantity_tier": "50000"
                        },
                        {
                            "unitQuantity": "1",
                            "tier_model": "Step Tier",
                            "price": 0.11,
                            "quantity_tier": "150000"
                        },
                        {
                            "unitQuantity": "1",
                            "tier_model": "Step Tier",
                            "price": 0.08,
                            "quantity_tier": "999999999"
                        }
                    ],
                    "quantity": 0.00021298881620168686,
                    "cost": 0.00002981843426823616,
                    "rated_cost": 0.00002981843426823616,
                    "rateable_quantity": 0.00021298881620168686,
                    "discounts": []
                },
                {
                    "metric": "STANDARD_CLASS_A_CALLS",
                    "unit": "API_CALLS",
                    "price": [
                        {
                            "unitQuantity": "1000",
                            "tier_model": "Granular Tier",
                            "price": 0.005,
                            "quantity_tier": "1"
                        }
                    ],
                    "quantity": 7,
                    "cost": 0.000035,
                    "rated_cost": 0.000035,
                    "rateable_quantity": 7,
                    "discounts": []
                },
                {
                    "metric": "STANDARD_CLASS_B_CALLS",
                    "unit": "API_CALLS",
                    "price": [
                        {
                            "unitQuantity": "10000",
                            "tier_model": "Granular Tier",
                            "price": 0.004,
                            "quantity_tier": "1"
                        }
                    ],
                    "quantity": 32,
                    "cost": 0.0000128,
                    "rated_cost": 0.0000128,
                    "rateable_quantity": 32,
                    "discounts": []
                }
            ]
        }
    ]
}

さいごに

API で取得できた課金情報についても、最新情報の反映に2時間程度かかりますが、課金Tier、課金単位、単価、リピータブルコストまでわかるので、より詳細に把握できますね。

また、課金情報は、「サービスインスタンス>リージョン」の単位でまとめられてしまうので、同じリージョンを使いつつ課金情報を分けて取得したいと考えている方は、サービスインスタンス(リソースインスタンス)ごとに分けて作成してください。

参考情報

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0