本页面介绍了如何使用 Cloud Billing Catalog API 执行以下操作:
- 获取包含所有公开服务的列表,其中包含每项服务的相关元数据。
- 获取包含服务中所有公开 SKU 的列表,包括:
- 直观易懂的 SKU 说明。
- SKU 的公开价格。
- 可购买 SKU 的区域。
- SKU 的分类数据。
如果您有自定义合同价格,则可以使用 Pricing API 获取适用于 Cloud Billing 账号的价格。
准备工作
Enable the Cloud Billing API.
您必须要有 API 密钥才能调用 Cloud Billing Catalog 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]
是人类可读的服务显示名称。
结果已分页,并且每页限制为 5000 个 SKU。该响应包含一个 nextPageToken
,可用于获取接下来的 5000 个结果。如需提取下一批结果,请设置 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]
是 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]
是直观易懂的价格信息摘要。[USAGE_UNIT]
是定价所依据的使用单位的简称。例如,“GiBy”这个usageUnit
指用量以“GiB”为单位。[USAGE_UNIT_DESCRIPTION]
是直观易懂的用量单位,例如“GiB”。[BASE_UNIT]
是 SKU 的基本单位,也是用量导出操作中使用的单位。例如,baseUnit
为“By”表示用量以“字节”为单位。[BASE_UNIT_DESCRIPTION]
是人类可读形式的基本单位。例如,“字节”。[BASE_CONVERSION_FACTOR]
是将每个 usage_unit 的价格转换为每个 base_unit 的价格以及将 start_usage_amount 转换为 base_unit 中的 start_usage_amount 的转换因子。例如,start_usage_amount * base_unit_conversion_factor = start_usage_amount in 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 中定义的由三个字母组成的货币代码。[UNITS]
是金额的整数单位。例如,如果 currencyCode 是“USD”,则 1 单位就是一美元。[NANOS]
是金额的纳诺 (10^-9) 单位数。这个值必须在 -999999999(含)和 +999999999(含)之间。如果单位数是正数,纳诺必须是正数或零。如果单位数为零,纳诺可以是正数、零或负数。如果单位数是负数,纳诺必须是负数或零。
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 关联的区域列表。对于全球 SKU,此字段为空,因为它们与所有 Google Cloud 区域相关联。
结果已分页,并且每页限制为 5000 个 SKU。该响应包含一个 nextPageToken
,可用于获取接下来的 5000 个结果。如需提取下一批结果,请设置 pageToken=[NEXT_PAGE_TOKEN]
。如需减少每页 SKU 的数量,请设置 pageSize=[CUSTOM_PAGE_SIZE]
。列出所有项后,令牌不会返回。
相关信息
您也可以参阅价格表报告或将 Cloud Billing 价格导出至 BigQuery,了解价格和 SKU 信息。