繁体   English   中英

Azure管理库虚拟机状态

[英]azure management libraries virtual machine state

已经使用Azure管理库已有几周了,但是在同一云服务中获取多个虚拟机的状态(或状态)有困难。 我可以获取虚拟机列表,但是找不到显示单个vm状态的属性。 到目前为止,我只能找到父级云服务的状态。

var deployment=GetAzureDeyployment("mvwVM",DeploymentSlot.Production);
            if (deployment.Roles.Count>0)
            {
                foreach (var role in deployment.Roles)
                    if (role.RoleType == VirtualMachineRoleType.PersistentVMRole.ToString())
                    {
                        Console.WriteLine(role.RoleName);
                        Console.WriteLine(role.AvailabilitySetName);
                    }

如何获得单独的虚拟机状态以及虚拟机名称?

谢谢。

这是一些代码代替(我正在使用2.0的管理库):

var deployment=GetAzureDeyployment("mvwVM",DeploymentSlot.Production);

foreach (var instance in deployment.RoleInstances)
{
   Console.WriteLine("Name: {0}, State: {1}", instance.InstanceName, instance.InstanceStatus);
}

此处的区别在于它直接进入RoleInstances,并且状态在实例上。 这有点令人困惑,因为Cloud Service容器可以具有Cloud Services(如Web角色或辅助角色),也可以包含一个或多个虚拟机。 通常,Cloud Service(Web /工作者角色)具有“角色”,然后在一个角色中具有一个或多个实例。 由于Cloud Service部署可以容纳这两种部署,因此对象模型有些混乱,因为它需要支持两种类型的部署。

您使用的代码仅达到角色级别。 在虚拟机的部署中,每个VM在对象模型中都是一个角色,在Web /工作人员角色部署中不一定是这种情况。 这就是RoleName是您要查找的VM的名称的原因。

我提供的代码假定我仅在此部署中查看虚拟机(因为您不能在同一部署中混合使用Web /工作者角色和VM),因此直接转到RoleInstances属性。 这是部署中每个单独的VM的列表。

希望能有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM