使用Azure Resource Manager库的ClassicCompute VM列表

c# azure azure-virtual-machine azure-resource-manager azure-api-management

1235 观看

3回复

25 作者的声誉

是否可以获取ClassicCompute虚拟机列表并使用Azure资源管理器库管理它们?

使用Azure预览门户创建的VM和存储帐户也是Classic版本。

是否不支持使用azure预览门户创建V2 VM或我是否缺少任何设置?

作者: pravn757 的来源 发布者: 2015 年 6 月 27 日

回应 (3)


0

1 作者的声誉

Azure预览门户支持V1和V2 VM。您可以使用“全部浏览” - >“虚拟机”创建V2 VM,并使用“全部浏览” - >“虚拟机”(经典)创建V1 VM

作者: Bin Xia 发布者: 14.07.2015 07:52

1

21 作者的声誉

看起来Azure预览门户最近已更新,允许您选择是否需要使用新ARM模板的“经典”vms或vms。

去做这个:

转到“新建”,选择模板,例如“Windows Server 2012 R2 Datacenter”,然后在“创建”命令按钮上方的下拉框中,有一个标题为“选择计算堆栈”的部分。这将允许您选择“使用服务管理堆栈(经典)” - (即V1经典计算)或“使用资源管理器堆栈” - (即V2经典计算)。

希望有所帮助!

作者: Justin Ploegert 发布者: 14.07.2015 05:20

0

1703 作者的声誉

您可以使用以下代码获取V1和V2 VM的列表。ListRecursiveAsync()只是一种扩展方法,我把它放在一起处理多页结果的可能性。

另外,为了理解ARM API的功能,Azure Resource Explorer是一个很好的工具。

    using (var client = new ResourceManagementClient(creds))
    {
        var v1ComputeParams = new ResourceListParameters { ResourceType = "Microsoft.ClassicCompute/virtualMachines" };
        var v2ComputeParams = new ResourceListParameters { ResourceType = "Microsoft.Compute/virtualMachines" };

        var v1ComputeResult = await client.ListRecursiveAsync(v1ComputeParams, null);
        var v2ComputeResult = await client.ListRecursiveAsync(v2ComputeParams, null);
    }

/// <summary>
/// Gets the list of resources, recursing until ResourceListResult.NextLink is empty. 
/// </summary>
/// <param name="client"></param>
/// <param name="parameters">Optional. Query parameters. If null is passed returns all resources from all resource groups.</param>
/// <param name="nextLink"></param>
/// <returns></returns>
public static async Task<IList<GenericResourceExtended>> ListRecursiveAsync(this ResourceManagementClient client, ResourceListParameters listParams, string nextLink)
{
    var rValue = new List<GenericResourceExtended>();

    ResourceListResult computeList = null;

    if (!string.IsNullOrWhiteSpace(nextLink))
    {
        computeList = await client.Resources.ListNextAsync(nextLink);
    }
    else
    {
        computeList = await client.Resources.ListAsync(listParams);
    }

    rValue.AddRange(computeList.Resources);

    if (!string.IsNullOrWhiteSpace(computeList.NextLink))
    {
        var nextResult = await ListRecursiveAsync(client, null, computeList.NextLink);
        rValue.AddRange(nextResult);
    }

    return rValue;
}
作者: JoeBrockhaus 发布者: 19.10.2015 07:07
32x32