Azure是否提供API查询VM Size与磁盘类型的兼容性?
获取Azure VM规格与磁盘类型兼容性的方法
你遇到的问题根源是旧版Compute SKUs API(2021-07-01)未返回VM规格对磁盘类型的支持信息,以下是可行的解决方法:
升级API版本
将调用的API版本更新至2023-07-01及更高版本,新版API返回的SKU数据中会包含capabilities字段,其中明确标注了磁盘支持属性:PremiumIO:值为True表示该VM规格支持Premium_LRS高级存储;False则不支持,仅能使用Standard_LRS等标准存储类型。EphemeralOSDiskSupported:标识该规格是否支持临时OS磁盘,可按需判断。
比如你遇到的Basic_A3规格,在新版API返回的
capabilities里PremiumIO会是False,提前识别后就能避免它和Premium_LRS的组合,防止部署报错。解析API返回的兼容性数据
在代码中处理SKU列表时,可通过筛选capabilities字段匹配目标磁盘类型:# 示例:筛选支持Premium_LRS的VM规格 supported_vm_sizes = [] for sku in sku_response['value']: for cap in sku['capabilities']: if cap['name'] == 'PremiumIO' and cap['value'] == 'True': supported_vm_sizes.append(sku['name']) break辅助判断:通过VM规格命名规则快速过滤
Azure VM规格命名有规律可做初步筛选:- 带
S后缀的系列(如Standard_DS2_v2、Standard_E8s_v3)支持高级存储; - Basic系列(Basic_A*)、不带
S的D/E系列(如Standard_D2_v2)不支持高级存储。
注意:此方法仅作辅助,最终判断仍需以API返回的capabilities为准,避免因Azure规格更新导致判断失误。
- 带
内容的提问来源于stack exchange,提问作者thebadguy
相关产品推荐
相关产品推荐

