一般公開されている Google Cloud の料金に関する情報を取得する

このページでは、Cloud Billing Catalog API を使用して以下のことを行う方法について説明します。

  • 各サービスに関する関連メタデータを含むすべての公開サービスのリストを取得する。
  • 次の情報を含む、サービス内のすべての公開 SKU のリストを取得する。
    • SKU の人が読める形式の説明。
    • SKU の公的価格設定。
    • SKU を購入可能なリージョン。
    • SKU に関する分類データ。

カスタム契約料金が設定されている場合は、Pricing API を使用して Cloud 請求先アカウントに適用される料金を取得できます。

始める前に

Cloud Billing Catalog API を使用するには、Cloud Billing API を有効にして API キーを取得しておく必要があります。

Enable the Cloud Billing API.

Enable the API

Cloud Billing Catalog API に使用する Google Cloud プロジェクトを確認するよう求められたら、Cloud Billing API が有効になっているプロジェクトなどの、Cloud 請求先アカウントの FinOps と請求管理に必要なすべてのリソースの格納用に設定されたプロジェクトを使用することをおすすめします。

請求管理のユースケースで FinOps 重視のプロジェクトを使用するメリットの詳細をご確認ください。

API キーを取得する

Cloud Billing Catalog API を呼び出すには、API キーが必要です。API キーの詳細については、API キーの使用をご覧ください。

カタログ記載の公開サービスのリスト

このステップでは、各サービスに関する関連メタデータを含むすべての公開サービスのリストを取得します。

次のコード スニペットは、カタログ内のすべての公開サービスをリストします。

リクエスト:

GET https://cloudbilling.googleapis.com/v1/services?key=<var>API_KEY</var>

レスポンス:

{
  "services": [
    {
      "name": "[SERVICE_NAME]",
      "serviceId": "[SERVICE_ID]",
      "displayName": "[DISPLAY_NAME]",
    },
    [...]
  ],
  "nextPageToken": "[NEXT_PAGE_TOKEN]"
}

ここで

  • [SERVICE_NAME] はサービスのリソース名です。
  • [SERVICE_ID] はサービスの識別子です。
  • [DISPLAY_NAME] はサービスの人が読める表示名です。

結果はページ分けされ、1 ページあたり 5,000 SKU に制限されます。レスポンスには、次の 5,000 件の結果を取得するために使用できる nextPageToken が含まれています。次のバッチを取得するには、pageToken=[NEXT_PAGE_TOKEN] を設定します。ページあたりの SKU 数を減らすには、pageSize=[CUSTOM_PAGE_SIZE] を設定します。すべての項目が表示されると、トークンは返されません。

サービスの SKU のリスト取得

次のコード スニペットは、指定したサービスのカタログ内の SKU をリストします。

リクエスト:

GET https://cloudbilling.googleapis.com/v1/services/SERVICE_ID/skus?key=<var>API_KEY</var>

ここで

  • SERVICE_ID は親サービスの識別子です。

レスポンス:

{
  "skus": [
    {
        "name": "[SKU_NAME]",
        "skuId": "[SKU_ID]",
        "description": "[SKU_DESCRIPTION]",
        "category": {
            "serviceDisplayName": "[SVC_DISPLAY_NAME]",
            "resourceFamily": "[FAMILY]",
            "resourceGroup": "[GROUP]",
            "usageType": "[USAGE]",
        },
        "serviceRegions": [
          "[REGION]"
        ],
        "pricingInfo": [
          {
              "effectiveTime": "[TIME]",
              "summary": "[SUMMARY]",
              "pricingExpression": {
                  "usageUnit": "[USAGE_UNIT]",
                  "usageUnitDescription": "[USAGE_UNIT_DESCRIPTION]",
                  "baseUnit": "[BASE_UNIT]",
                  "baseUnitDescription": "[BASE_UNIT_DESCRIPTION]",
                  "baseUnitConversionFactor": [BASE_CONVERSION_FACTOR],
                  "displayQuantity": [DISPLAY_QUANTITY],
                  "tieredRates": [
                    {
                        "startUsageAmount": [START_AMOUNT],
                        "unitPrice": {
                            "currencyCode": "[CURRENCY_CODE]",
                            "units": [UNITS],
                            "nanos": [NANOS],
                        },
                    }
                  ],
              },
              "aggregationInfo": {
                  "aggregationLevel": enum("[AGGREGATION_LEVEL]"),
                  "aggregationInterval": enum("[AGGREGATION_INTERVAL]"),
                  "aggregationCount": [AGGREGATION_COUNT],
              },
              "currencyConversionRate": [CONVERSION_RATE],
          }
        ],
        "serviceProviderName": "[SERVICE_PROVIDER]",
        "geoTaxonomy": {
          "type": "[TAXONOMY_TYPE]",
          "regions": [
          "[REGION]"
        ]
      }
    }
  ],
  "nextPageToken": "[NEXT_PAGE_TOKEN]"
}

ここで

  • [SKU_NAME]services/{SERVICE_ID}/skus/{SKU_ID} という形式で指定する SKU のリソース名です。
  • [SKU_ID] は、SKU の一意の識別子です。
  • [SKU_DESCRIPTION] は、SKU の人が読める説明です。
  • [SVC_DISPLAY_NAME] は、SKU が属するサービスの表示名です。
  • [FAMILY] は、SKU が参照するプロダクトのタイプです。例: "Compute"、"Storage"、"Network" など。
  • [GROUP] は、関連する SKU のグループ分類です。例: "RAM"、"GPU"、"Prediction" など。
  • [USAGE] は、SKU の消費方法を表します。例: "OnDemand"、"Preemptible"、"Commit1Mo"、"Commit1Yr" など。
  • [REGION] は、SKU が提供されるサービス リージョンのリストです。例: "asia-east1"。
  • [TIME] は、この料金設定が有効となった時刻を表す 2014-10-02T15:01:23.045123456Z という形式のタイムスタンプです。
  • [SUMMARY] は、料金情報の人が読める要約です。
  • [USAGE_UNIT] は、料金が設定されている使用量の単位の略語です。たとえば、usageUnit が "GiBy" に設定されている場合は、使用量が「ギビバイト」単位であることを示します。
  • [USAGE_UNIT_DESCRIPTION] は、使用量の人が読める形式の単位です。例: "Gibibyte"。
  • [BASE_UNIT] は、SKU の基本単位であり、使用量のエクスポートで使用される単位です。たとえば、baseUnit が "By" に設定されている場合は、使用量が「バイト」単位であることを示します。
  • [BASE_UNIT_DESCRIPTION] は、人が読める形式の基本単位です。例: "byte"。
  • [BASE_CONVERSION_FACTOR] は、usage_unit ごとの価格を base_unit ごとの価格に変換し、start_usage の量を base_unit の start_usage_amount に変換するための変換係数です。例: start_usage_amount * base_unit_conversion_factor = start_usage_amount(base_unit)
  • [DISPLAY_QUANTITY] は、料金情報を表示する推奨される単位数です。料金情報の表示には、(unitPrice * displayQuantity) per displayQuantity usageUnit という形式を使用することをおすすめします。このフィールドは料金設定式には影響しません(表示専用です)。 たとえば、unitPrice が "0.0001 USD"、usageUnit が "GB"、displayQuantity が "1000" である場合、料金情報の推奨される表示方法は "0.10 USD per 1000 GB" です。
  • [START_AMOUNT] は、この量を消費した後にはじめて、使用量が指定のレートで料金設定されることを示します。たとえば、startUsageAmount が 10 に設定されると、使用量は最初の 10 個の usage_units の後に、定義された料金で料金設定されます。
  • [CURRENCY_CODE] は、ISO 4217 で定義されている 3 文字の通貨コードです。
  • [UNITS] は金額の単位です。たとえば、currencyCode が "USD" である場合、1 単位は 1 米ドルです。
  • [NANOS] は、金額のナノ(10^-9)単位数です。値は -999,999,999 以上 +999,999,999 以下でなければなりません。units が正の場合は、nanos は正または 0 でなければなりません。units がゼロの場合、nanos は正、ゼロ、または負の値です。単位が負の場合、ナノは負またはゼロでなければなりません。

SKU の料金は units + nanos です。たとえば、$1.75 の費用は units=1nanos=750,000,000 で表されます。

  • [AGGREGATION_LEVEL] は、費用計算のために使用量を集計するレベルを示します。有効な値は ACCOUNT、PROJECT、AGGREGATION_LEVEL_UNSPECIFIED です。
  • [AGGREGATION_INTERVAL] は、費用計算のために使用量を集計する間隔です。有効な値は、DAILY、MONTHLY、AGGREGATION_INTERVAL_UNSPECIFIED です。
  • [AGGREGATION_COUNT] は、集計する間隔の数です。たとえば、aggregationLevel が "DAILY"、aggregationCount が 14 である場合、集計は 14 日以上になります。
  • [CONVERSION_RATE] は、米ドルから指定通貨への通貨換算の換算レートです。通貨が指定されていない場合は、デフォルトの 1.0 が使用されます。
  • [SERVICE_PROVIDER] は、サービス プロバイダを識別します。Google Cloud Platform のファースト パーティ サービスの場合、これは「Google」です。
  • [TAXONOMY_TYPE] は、SKU の地理的分類のタイプです(GLOBALREGIONAL、または MULTI_REGIONAL)。 
  • [REGION] は、SKU に関連付けられているリージョンのリストです。このフィールドは、すべての Google Cloud リージョンに関連付けられているため、グローバル SKU では空になります。

結果はページ分けされ、1 ページあたり 5,000 SKU に制限されます。レスポンスには、次の 5,000 件の結果を取得するために使用できる nextPageToken が含まれています。次のバッチを取得するには、pageToken=[NEXT_PAGE_TOKEN] を設定します。ページあたりの SKU 数を減らすには、pageSize=[CUSTOM_PAGE_SIZE] を設定します。すべての項目が表示されると、トークンは返されません。

料金と SKU の情報は、価格表レポートまたは BigQuery への Cloud Billing の料金エクスポートでも確認できます。