2014-02-12 55 views
1

我在編寫一個應用程序,列出Azure上所有虛擬機及其狀態(正在運行/未運行)的狀態。我能得到的所有使用下面的代碼運行的雲服務和他們的名字列表...如何在Windows Azure中獲取虛擬機列表

var x = from h in _computeManagementClient.HostedServices.List() select h; 

foreach (var item in x) 
{ 
    //item.Properties.Label is the name of the service 
} 

有沒有我可以用它來列出虛擬機及其狀態類似的方法?如果可能的話,我寧願不使用REST API。

+0

如果你的意思是IaaS的虛擬機,對了,還有的API爲此 - 在虛擬機操作組下。 –

回答

1

通過虛擬機,我假設你的意思是角色實例?

您可以通過部署獲得它們。

var instances = _computeManagementClient.Deployments.GetBySlot(serviceName, DeploymentSlot.Production).RoleInstances; 

這將返回的Microsoft.WindowsAzure.Management.Compute.Models.RoleInstance的集合,從中可以獲取狀態信息等

爲RoleInstance文檔:

http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.management.compute.models.roleinstance.aspx

+0

GetBySlot沒有一個參數,所以我不得不編輯它看起來像'GetBySlot(Item.Properties.Label,DeploymentSlot.Production)',然後它完美運行。非常感謝。 –

+0

對不起,我的錯。我更新了我的答案。如果答案是正確的,你能標記嗎?我需要代表; o) –