2017-05-03 107 views
0

我已經開始研究node.js的azure sdk(下面的鏈接),有趣的是,我已經在我想要的圖像中打了一堵牆是使用正在檢查虛擬機狀態的Azure REST端點要實現的最常見任務。Node.js Azure sdk - 獲取虛擬機狀態

我可以很容易地得到所有機器的列表,或者一個特別但從這個服務響應不包括虛擬機的當前狀態(運行,停止等)

絕對沒有信息了關於docos或網絡中除了博客文章(https://github.com/Azure/azure-xplat-cli/issues/2565)之外的這個特定場景,實際上是關於不同的圖書館。

請注意,我使用的是azure-arm-compute庫,它是Node.js天藍色sdk的一部分。

任何幫助將是非常讚賞

GitHub庫:https://github.com/Azure/azure-sdk-for-node

回答

0

爲了讓虛擬機的狀態,請使用功能get(resourceGroupName, vmName, optionsopt, optionalCallbackopt),並通過vaule {expand: 'instanceView'}作爲選項參數。

var msRestAzure = require('ms-rest-azure'); 
var computeManagementClient = require('azure-arm-compute'); 

// Interactive Login 
// It provides a url and code that needs to be copied and pasted in a browser and authenticated over there. If successful, 
// the user will get a DeviceTokenCredentials object. 
msRestAzure.interactiveLogin(function(err, credentials) { 
    var client = new computeManagementClient(credentials, 'ed0caab7***'); 

    client.virtualMachines.get('<resourceGroupName>', '<vmName>', {expand: 'instanceView'}, function(err, result, request, response) { 
    if (err) console.log(err); 
    console.log(result.instanceView); 
    }); 
}); 

enter image description here

+0

感謝阿龍。這看起來有希望。我今天晚些時候會看看並將其標記爲已回答。順便說一句,你從哪裏得到信息?我瀏覽了docos並找不到任何東西。很明顯,我沒有做好工作! – Pilsen

+0

正如@singhkays在上面提供的博客文章中提到的,我們需要調用每個虛擬機上的實例視圖API來獲取虛擬機狀態。在API文檔(http://azure.github.io/azure-sdk-for-node/azure-arm-compute/latest/VirtualMachines.html#get)滾動後,我注意到我們可以包含這個值:' instanceView',在屬性'expand'中。然後我試了一下。 –

+0

太好了。一定錯過了它。謝謝您的幫助! – Pilsen