本页面介绍了如何使用 Cloud Billing Catalog API 执行以下操作:
- 获取包含所有公开服务的列表,其中包含每项服务的相关元数据。
- 获取包含服务中所有公开 SKU 的列表,包括:
- 直观易懂的 SKU 说明。
- SKU 的公开价格。
- 可购买 SKU 的区域。
- SKU 的分类数据。
准备工作
启用 Cloud Billing API。您必须要有 API 密钥才能调用 Cloud Billing Catalog API。您可以在使用 API 密钥中找到有关 API 密钥的详细信息。
列出目录中的公共服务
在此步骤中,您将获得包含所有公共服务的列表,包括每项服务的相关元数据。
API
以下代码段会列出目录中的所有公共服务:
请求:
GET https://cloudbilling.googleapis.com/v1/services?key=API_KEY
响应:
{
"services": [
{
"name": "[SERVICE_NAME]",
"serviceId": "[SERVICE_ID]",
"displayName": "[DISPLAY_NAME]",
},
[...]
],
"nextPageToken": "[NEXT_PAGE_TOKEN]"
}
其中:
[SERVICE_NAME]
是服务的资源名称。[SERVICE_ID]
是服务的标识符。[DISPLAY_NAME]
是人类可读的服务显示名称。
结果已分页。如果还有其他项要列出,则响应将包含 nextPageToken
。设置 pageToken=[NEXT_PAGE_TOKEN]
以提取下一批。列出所有项后,令牌不会返回。
获取服务的 SKU 列表
API
以下代码段将列出目录中指定服务的 SKU:
请求:
GET https://cloudbilling.googleapis.com/v1/services/SERVICE_ID/skus?key=API_KEY
其中:
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": "[UNIT]",
"usageUnitDescription": "[UNIT_DESCRIPTION]",
"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]",
}
],
"nextPageToken": "[NEXT_PAGE_TOKEN]"
}
其中:
[SKU_NAME]
是 SKU 的资源名称,格式为:services/{SERVICE_ID}/skus/{SKU_ID}
。[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]
是直观易懂的价格信息摘要。[UNIT]
是定价所依据的使用单位的简称。例如,“GiBy”这个usageUnit
指用量以“GiB”为单位。[UNIT_DESCRIPTION]
是直观易懂的用量单位,例如“GiB”。[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 中定义的由三个字母组成的货币代码。[UNITS]
是金额的整数单位。例如,如果 currencyCode 是“USD”,则 1 单位就是一美元。[NANOS]
是金额的纳诺 (10^-9) 单位数。这个值必须在 -999999999(含)和 +999999999(含)之间。如果单位数是正数,纳诺必须是正数或零。如果单位数为零,纳诺可以是正数、零或负数。如果单位数是负数,纳诺必须是负数或零。例如,$-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”。
结果已分页。如果还有其他项要列出,则响应将包含 nextPageToken
。设置 pageToken=[NEXT_PAGE_TOKEN]
以提取下一批。列出所有项后,令牌不会返回。
相关信息
您也可以参阅价格表报告或将 Cloud Billing 价格导出至 BigQuery 了解价格和 SKU 信息。