10

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

使用 cmdlet,我可以运行“Get-AzureVM”并获得所有 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);

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

4

3 回答 3

7

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

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

于 2013-05-22T14:08:00.893 回答
2

请按照以下步骤列出 VM:

  1. 使用以下ListHostedServices列出 HostedServices
  2. 对于上述中的每个服务,a)环境(生产或登台)获取部署。或 b) 按名称获取部署。
  3. 无论哪种情况,获取 Deployment.getRoleInstanceList().getRoleInstance().getInstanceName() 的值。
于 2013-08-08T18:14:18.053 回答
1

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

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

有关 Azure 节点 SDK 的更多详细信息:https ://github.com/Azure-Samples/compute-node-manage-vm

于 2019-03-01T00:18:32.410 回答