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

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

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

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

始める前に

Cloud Billing API を有効にします。

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] は、使用量の人が読める形式の単位です。例: "GiB"。
  • [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 料金のエクスポートでも参照できます。