通过Google Billing Catalogue API获取Google Compute Engine定价时缺失操作系统与机器类型信息的技术咨询
我之前调用这个API获取GCE定价时,也碰到过一模一样的困惑——机器类型和操作系统信息确实不是直接摆在顶层,得往SKU的深层结构里挖。给你分享几个实用的查找思路:
定位机器类型信息:
机器类型(比如e2-standard-2)的线索藏在SKU的description字段或者category.resourceGroup里。比如E2系列的虚拟机SKU,description里会明确标注e2-standard-2,resourceGroup则对应e2-standard这类系列标识。你还可以在API请求时用filter参数缩小范围,比如只请求Compute Engine服务:filter=serviceName:services/ComputeEngine,减少返回数据量后更易找到目标SKU。提取操作系统信息:
操作系统(Linux/Windows等)的信息同样会在SKU的description里明确说明,部分SKU的category.usageType也能间接体现。比如带“Windows”字样的SKU对应Windows系统的虚拟机定价,默认不带特殊标识的一般是Linux(或自带免费操作系统的实例)。核对定价维度细节:
进入pricingInfo.pricingExpression字段,里面的dimensions和tieredRates包含虚拟机使用的定价维度(比如按秒计费单位),能辅助你确认当前SKU是否对应目标机器类型与OS的组合。
给你个简单的筛选逻辑示例(伪代码):
for sku in response['skus']: if 'Compute Engine' in sku['category']['serviceDisplayName']: if 'e2-standard-2' in sku['description']: # 匹配到目标机器类型的SKU os_type = 'Windows' if 'Windows' in sku['description'] else 'Linux' print(f"机器类型: e2-standard-2, 操作系统: {os_type}, 定价信息: {sku['pricingInfo']}")
另外要注意,不同区域的定价可能存在差异,记得结合serviceRegions字段确认你需要的区域定价哦。
内容的提问来源于stack exchange,提问作者Waleed Asif

