[英]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.