Azure特定区域特定OS虚拟机实例定价API查询问题
简便查询Azure虚拟机定价的几种方式
1. 调整Azure零售价格API的查询参数
之前返回空数组大概率是筛选条件卡得太死,调整参数后就能拿到数据,这也是程序化查询的首选方式:
- 核心筛选条件要覆盖这些维度:
- 服务类型:
serviceName eq 'Virtual Machines' - 区域:
location eq 'eastus' - 实例规格:
skuName eq 'Standard_D2s_v3' - 计费模式:
priceType eq 'Consumption'(对应按需付费) - 操作系统细分:
- Linux仅含OS:
productName eq 'Virtual Machines Linux',怕有附加软件SKU的话再加and not contains(productName, 'SQL') - Windows不带SQL:
productName eq 'Virtual Machines Windows' - Windows带SQL:
productName contains 'SQL',还能加版本筛选(比如contains(productName, 'SQL Server 2019'))
- Linux仅含OS:
- 服务类型:
- 示例筛选片段(直接放到API的
$filter参数里):$filter=serviceName eq 'Virtual Machines' and location eq 'eastus' and skuName eq 'Standard_D2s_v3' and priceType eq 'Consumption' and productName eq 'Virtual Machines Linux' - 别硬设
count=1,先返回所有匹配结果再取第一条,避免因筛选过严直接返回空数组。
2. 用Azure定价计算器(可视化操作)
这是最直观的非代码方式,适合快速查价:
- 直接选「虚拟机」服务,指定美国东部区域、Standard_D2s_v3实例规格、对应操作系统(Linux/Windows,Windows可直接勾选SQL Server版本)、按需计费模式,就能看到实时定价,还能对比不同配置的差价。
3. Azure CLI命令(脚本自动化)
适合用命令行或脚本批量查价:
- 查Linux按需实例的价格(直接取第一条数据):
az retail-prices list --filter "serviceName eq 'Virtual Machines' and location eq 'eastus' and skuName eq 'Standard_D2s_v3' and priceType eq 'Consumption' and productName eq 'Virtual Machines Linux'" --query "[0]" - 查Windows不带SQL的价格,把
productName改成'Virtual Machines Windows';带SQL就换成contains(productName, 'SQL Server')。
4. Azure PowerShell命令(PowerShell环境适配)
如果常用PowerShell,用这个更顺手:
- 示例命令(获取Linux按需实例的第一条定价数据):
Get-AzRetailPrice -Filter "serviceName eq 'Virtual Machines' and location eq 'eastus' and skuName eq 'Standard_D2s_v3' and priceType eq 'Consumption' and productName eq 'Virtual Machines Linux'" | Select-Object -First 1
内容的提问来源于stack exchange,提问作者anjanesh
相关产品推荐
相关产品推荐

