如何以编程方式获取Azure服务定价详细信息?

时间:2014-05-07 07:15:37

标签: azure

有人可以告诉我如何以编程方式从Azure网站获取Azure服务定价详细信息(计算,数据服务,应用服务,网络服务的定价)?

Azure是否以JSON格式提供定价详细信息?

5 个答案:

答案 0 :(得分:2)

Windows Azure确实没有提供今天的任何此类API,尽管这是一个备受关注的功能,希望他们正在努力。

点击此处: http://feedback.windowsazure.com/forums/170030-billing/suggestions/1143971-billing-usage-api#comments

现在唯一的方法是使用此处提到的详细信息构建您自己的数据存储:http://azure.microsoft.com/en-us/pricing/calculator/

使用数据csv中会提到单位价格,但不幸的是,现在唯一的方法是在此处下载此csv用于您的订阅:https://account.windowsazure.com/Subscriptions

答案 1 :(得分:1)

Azure现在提供API来获取使用情况和结算数据。您可以查看this blog,其中概述了这些API和the feedback form here,其中包含指向某些有用页面的链接。

总之,使用以下API来获取使用情况和结算数据:

答案 2 :(得分:1)

聚会迟到了,但我发现自己正在寻找这个,但这里没有任何东西可以满足我的需求。然后我发现了这个https://docs.microsoft.com/en-us/rest/api/cost-management/retail-prices/azure-retail-prices

这很简单。将 Json.NET .NET 4.0 的引用添加到您的项目中 它在您的引用中显示为 Newtonsoft.Json

    //You will need to add these usings

    using Newtonsoft.Json;
    using Newtonsoft.Json.Linq;
    using System.Net.Http;

    private void btnGetRates_Click(object sender, EventArgs e)
    {
        string strUrl = "https://prices.azure.com/api/retail/prices?$filter=serviceName eq 'Virtual Machines' and skuName eq 'E64 v4' and reservationTerm eq '3 Years'";

        string response = GetDataFromAPI(strUrl);

        // Here is am turning the Json response into a datatable and then loading that into a DataGridView.
        //You can use the Json response any way you wish
        DataTable dt = Tabulate(response); 
        dgvAzureSKU.DataSource = null;
        dgvAzureSKU.DataSource = dt;
    }

    public string GetDataFromAPI(string url)
    {
        using (var httpClient = new HttpClient())
        {
            httpClient.DefaultRequestHeaders.Add("Accept", "application/json");
            var response = httpClient.GetStringAsync(new Uri(url)).Result;
            return response;
        }
    }

    public static DataTable Tabulate(string json)
    {
        var jsonLinq = JObject.Parse(json);

        // Find the first array using Linq
        var srcArray = jsonLinq.Descendants().Where(d => d is JArray).First();
        var trgArray = new JArray();
        foreach (JObject row in srcArray.Children<JObject>())
        {
            var cleanRow = new JObject();
            foreach (JProperty column in row.Properties())
            {
                if (column.Value is JValue) // Only include JValue types
                {
                    cleanRow.Add(column.Name, column.Value);
                }
            }
            trgArray.Add(cleanRow);
        }
        return JsonConvert.DeserializeObject<DataTable>(trgArray.ToString()); //This is what loads the data into the table
    }

答案 3 :(得分:0)

您可以在此处找到一些示例https://docs.microsoft.com/en-us/azure/billing/billing-usage-rate-card-overview。 Azure提供发票,使用和价目表API,可以帮助您执行以下操作:

  • 本月的Azure支出
  • 设置提醒
  • 预测法案
  • 消费前成本分析

答案 4 :(得分:0)

不确定,如果我来不及回答。

我一直在寻找相同的东西,偶然发现这篇关于堆栈溢出的帖子:Azure pricing calculator api。我能够使用这个git hub repo:https://github.com/Azure-Samples/billing-dotnet-ratecard-api生成JSON字符串。

希望这有帮助!