通过REST API列出Azure虚拟机

时间:2013-05-22 13:37:07

标签: rest azure

我目前正在尝试以编程方式获取我在Windows Azure订阅下运行的所有虚拟机的列表。为此,我尝试使用Azure REST API(https://management.core.windows.net),而不是使用power-shell cmdlet。

使用cmdlet我可以运行'Get-AzureVM'并获取所有具有ServiceName,Name和Status的VM的列表,而无需任何修改。问题是我在文档中找不到如何通过API列出VM。

我查看了各种Azure REST API,但无法找到任何内容。 VM REST API的文档未显示或提供列表功能。

我错过了某个地方的基本面吗?

// Create the request.
            // https://management.core.windows.net/<subscription-id>/services/hostedservices
            requestUri = new Uri("https://management.core.windows.net/"
                                 + subscriptionId 
                                 + "/services/" 
                                 + operation);

这就是我用于请求的基础。我可以获得托管服务的列表,但不能获得虚拟机。

3 个答案:

答案 0 :(得分:7)

您需要获取所有云服务(托管服务)的列表,然后获取每个服务的部署属性。在生产环境/插槽中查找部署。然后检查角色类型“PersistentVMRole”。

虚拟机实际上只是一种云服务,还有Web和辅助角色。 Windows Azure管理门户和PowerShell cmdlet将其抽象化,使事情更容易理解和查看。

答案 1 :(得分:2)

按照以下步骤列出虚拟机:

  1. 使用以下ListHostedServices
  2. 列出HostedServices
  3. 对于上述的每项服务, a)环境(生产或分期)GetDeployment。 要么 b)按名称获取部署。
  4. 在任何一种情况下,获取Deployment.getRoleInstanceList()。getRoleInstance()。getInstanceName()。
  5. 的值。

答案 2 :(得分:1)

您可以使用Azure节点SDK列出您的订阅中的所有VM

computeClient.virtualMachines.listAll(函数(错误,结果))

有关Azure Node SDK的更多详细信息,请访问:https://github.com/Azure-Samples/compute-node-manage-vm