2017-05-03 106 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