2014-10-11 3 views
0

Уже несколько недель используют библиотеки управления Azure, но мне трудно получить состояние (или состояние) нескольких виртуальных машин в одной и той же облачной службе. Я могу захватить список виртуальных машин, но не могу найти свойство, показывающее индивидуальное состояние vm. Пока что все, что я могу найти, это состояние родительского облачного сервиса.azure management libraries Состояние виртуальной машины

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); 
        } 

Как получить отдельное состояние vm, чтобы идти вместе с именем vm?

Спасибо.

+0

[This] (http://stackoverflow.com/questions/24990451/get-azure-virtual-machine-status) Сообщение SO может помочь – jaywayco

ответ

1

Вот код, чтобы использовать вместо (я использую 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 (роли веб-/ рабочих) имеют «Роли», а затем один или несколько экземпляров в роли. Так как развертывание облачной службы может быть выполнено, объектная модель немного запуталась, так как она должна поддерживать оба типа развертывания.

Код, который вы использовали, только достиг уровня ролей. При развертывании виртуальных машин каждая виртуальная машина является ролей в объектной модели, что не обязательно имеет место при развертывании роли веб-/ рабочих. Вот почему RoleName - это имя виртуальной машины, которую вы искали.

Код, который я предоставил, предполагает, что я рассматриваю виртуальные машины только в этом развертывании (поскольку вы не можете смешивать и сопоставлять роли Web/рабочих и виртуальные машины в одном развертывании) и просто переходит прямо к свойству RoleInstances. Это список каждой отдельной виртуальной машины в развертывании.

Надеюсь, что это поможет.

Смежные вопросы