このページでは、Cloud Billing Catalog API を使用して以下のことを行う方法について説明します。
- 各サービスに関する関連メタデータを含むすべての公開サービスのリストを取得する。
- 次の情報を含む、サービス内のすべての公開 SKU のリストを取得する。
- SKU の人が読める形式の説明。
- SKU の公的価格設定。
- SKU を購入可能なリージョン。
- SKU に関する分類データ。
カスタム契約料金が設定されている場合は、Pricing API を使用して Cloud 請求先アカウントに適用される料金を取得できます。
始める前に
Enable the Cloud Billing 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=1
と nanos=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 の地理的分類のタイプです(GLOBAL
、REGIONAL
、または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 の料金エクスポートでも確認できます。