0

是否可以ClassicCompute使用 Azure 资源管理器库获取虚拟机列表并对其进行管理?

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

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

4

3 回答 3

1

Azure 预览门户最近似乎已更新,允许您选择是想要“经典”虚拟机还是使用新的 ARM 模板的虚拟机。

去做这个:

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

希望有帮助!

于 2015-07-14T17:20:42.493 回答
0

Azure 预览门户支持 V1 和 V2 VM。您可以使用 Browse All -> Virtual Machines 创建 V2 VM,并使用 Browse All -> Virtual Machines (classic) 创建 V1 VM

于 2015-07-14T07:52:14.577 回答
0

您可以使用以下代码获取 V1 和 V2 虚拟机列表。ListRecursiveAsync()只是我为了处理超过一页结果的可能性而拼凑起来的一种扩展方法。

此外,为了了解 ARM API 的一般功能,Azure 资源浏览器也是一个很好的工具。

    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;
}
于 2015-10-19T19:07:50.590 回答