0

任何人都可以建议一个 REST API 来根据磁盘层(例如,超标准)获取订阅中的所有磁盘并返回具有相同层的磁盘列表。

4

1 回答 1

0

据我所知,没有这样的 API 可以直接按磁盘层(SKU)检索磁盘。您应该自己过滤结果。如果您使用的是 .net ,那么使用 Azure 管理 SDK 将是一种比使用 REST API 更容易获得所需结果的方式。

我为您编写了一个简单的控制台应用程序,请尝试以下代码:

using Microsoft.Azure.Management.Fluent;
using Microsoft.Azure.Management.ResourceManager.Fluent;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AzureMgmtTest
{
    class Program
    {
        static void Main(string[] args)
        {
            var subscriotionId = "<azure subscrioption ID>";
            var clientId = "<azure ad app id>";
            var clientSecret = "<azure ad app secret>";
            var tenantId = "<your tenant name/id>";
            var sku = "<the disk sku you want to query>";   //all skus : Standard_LRS,Premium_LRS,StandardSSD_LRS,UltraSSD_LRS



            var credentials = SdkContext.AzureCredentialsFactory.FromServicePrincipal(clientId,clientSecret,tenantId,AzureEnvironment.AzureGlobalCloud);

            var azure = Azure
                .Configure()
                .Authenticate(credentials)
                .WithSubscription(subscriotionId);
            Console.WriteLine("using subscription: " + subscriotionId);

            var disks = azure.Disks.List().Where(disk => disk.Sku.ToString().Equals(sku));

            Console.WriteLine("disks with sku :" + sku);
            foreach (var disk in disks) {
                Console.WriteLine("name:"+ disk.Name + "      resource_group:"+ disk.ResourceGroupName );
            }

            Console.ReadKey();
        }
    }
}

结果 :

在此处输入图像描述

如果您有任何进一步的疑虑,请随时告诉我。

于 2020-01-07T02:18:56.790 回答