You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用C#获取不同规格Azure VM的成本数据

C#查询Azure VM规格对应成本实现方案

实现思路

Azure公开了无身份验证的零售价格查询接口,可直接通过接口筛选获取所有VM规格的定价数据,和Azure门户展示价格完全对齐。

核心代码示例

using System.Net.Http;
using System.Text.Json;
using System.Threading.Tasks;

public class AzureVmPriceQuery
{
    private static readonly HttpClient _client = new HttpClient();

    /// <summary>
    /// 获取指定区域指定VM规格的月度预估价格
    /// </summary>
    /// <param name="vmSku">VM规格,例如B2s、D2s_v5</param>
    /// <param name="region">Azure区域标识,例如eastus、chinaeast2</param>
    /// <param name="osType">操作系统类型,传入Windows或Linux</param>
    public async Task<decimal> GetVmMonthlyPriceAsync(string vmSku, string region = "eastus", string osType = "Windows")
    {
        // 构造查询筛选条件
        string filter = $"serviceName eq 'Virtual Machines' and armRegionName eq '{region}' and skuName eq '{vmSku}' and type eq 'Consumption' and productName eq 'Virtual Machines B Series {osType}'";
        string queryUrl = $"https://prices.azure.com/api/retail/prices?$filter={filter}";

        var response = await _client.GetAsync(queryUrl);
        response.EnsureSuccessStatusCode();
        string resultJson = await response.Content.ReadAsStringAsync();

        using JsonDocument doc = JsonDocument.Parse(resultJson);
        // 取返回列表第一条的每小时单价,乘以730小时得到月度预估价格
        decimal hourlyPrice = doc.RootElement.GetProperty("Items")[0].GetProperty("unitPrice").GetDecimal();
        return Math.Round(hourlyPrice * 730, 2);
    }
}

调用示例

你查询B2s规格的价格时,直接调用方法即可:

var query = new AzureVmPriceQuery();
// 得到的返回值即为$40.30,和门户展示的价格一致
decimal b2sPrice = await query.GetVmMonthlyPriceAsync("B2s");

注意事项

  • 查询非B系列的VM规格时,需要修改筛选条件中productName对应的系列名称,比如D系列v5改为Virtual Machines Dsv5 Series {osType}即可。
  • 需要查询预留实例定价时,将筛选条件中的type eq 'Consumption'替换为type eq 'Reservation',再补充对应预留时长的筛选参数即可。
  • 中国区Azure的定价需要使用中国区专属的价格查询接口,筛选逻辑保持一致即可。

内容的提问来源于stack exchange,提问作者user3192935

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 14:36:03