检查是否有天青VM运行(Check if an Azure VM is running)

2019-10-20 17:17发布

我想查询现有蔚蓝的虚拟机来检查是否是全面部署,并能够进行远程连接。 有没有办法做到这一点使用Azure的REST API?

我列出我目前的进程,所以我希望下面这样的呼吁。

我使用的是Windows Azure的管理库创建VM使用ComputeManagementClientCreateDeploymentAsync功能。 这则返回成功,如果我再做一个坐上部署它的状态的状态DeploymentStatus.Running

这已经用完之后,我想创建一个远程PowerShell连接,所以我可以格式化磁盘。 我一直在此得到一个错误,因为它无法创建会话。

WinRM的无法完成操作。 验证指定的计算机名称是有效的,该计算机是通过网络访问,并且对WinRM服务防火墙例外启用,并允许从这台计算机的访问。 默认情况下,公共配置文件的限制将WinRM防火墙例外访问远程计算机在同一个本地子网中。 欲了解更多信息,请参阅about_Remote_Troubleshooting帮助主题。

如果我去了Azure管理门户的状态配置,我想这是为什么我不能创建一个会话。

处理

CreateAzureVM()
CheckAzureVmCanBeConnectedTo() //I am unable to do this correctly
RunPowershellScriptOnVM() // this fails

Answer 1:

您应该能够利用获得的部署轮询角色的InstanceStatus(注意InstanceStatus!=状态)。 当InstanceStatus是ReadyRole,你应该能够登录到您的计算机。

有一个部署的地位和角色InstanceStatus之间的区别。 觉得作为一个实际的虚拟机的作用,而部署可以描述多个VM。



Answer 2:

SubscriptionCloudCredentials certificate = new CertificateCloudCredentials(subscriptionId, x509Certificate);

IComputeManagementClient ComputeManagementClient = new ComputeManagementClient(certificate);

var deployments = ComputeManagementClient.Deployments.GetBySlot(hostedServiceName, DeploymentSlot.YourDeploymentSlot);

var state = deployments.RoleInstances.First().PowerState;

我希望这会帮助你。



Answer 3:

没有看到你的代码很难说究竟你需要做什么,但我会建议你利用的await关键字来等待调用API Azure中创建VM的完成。 看到这个MSDN指导下的“部署虚拟机”的代码示例: http://msdn.microsoft.com/en-us/library/azure/dn722415.aspx#bk_createres



文章来源: Check if an Azure VM is running