Список виртуальных машин Azure через REST API

В настоящее время я пытаюсь получить список всех виртуальных машин, которые я запускаю под подпиской Windows Azure программно. Для этого я пытаюсь использовать API Azure REST (https://management.core.windows.net), а не использовать командлеты power-shell.

Используя командлеты, я могу запустить "Get-AzureVM" и получить список всех виртуальных машин с именем службы, именем и статусом без каких-либо изменений. Проблема в том, что я не могу найти нигде в документации о том, как перечислять виртуальные машины через API.

Я просмотрел различные API Azure REST, но ничего не смог найти. Документация для VM REST API не отображает или не предоставляет функцию списка.

Я где-то упускаю основы?

// Create the request.
            // https://management.core.windows.net/<subscription-id>/services/hostedservices
            requestUri = new Uri("https://management.core.windows.net/"
                                 + subscriptionId 
                                 + "/services/" 
                                 + operation);

Это то, что я использую для базы запроса. Я могу получить список размещенных сервисов, но не виртуальных машин.

Ответ 1

Вам нужно будет получить список всех облачных сервисов (Hosted Services), а затем свойства развертывания для каждого. Найдите развертывание в рабочей среде/слоте. Затем проверьте тип роли "PersistentVMRole".

Виртуальные машины - это всего лишь тип облачной службы, а также роли Web и Worker. Портал управления Windows Azure и командлеты PowerShell абстрагируют это, чтобы сделать вещи немного легче понять и просмотреть.

Ответ 2

Выполните следующие действия для перечисления виртуальных машин:

  • Список HostedServices, используя следующие ListHostedServices
  • Для каждого сервиса, указанного выше, a) GetDeployment по средам (производство или постановка). ИЛИ b) Получить развертывание по имени.
  • В любом случае получите значение для Deployment.getRoleInstanceList(). getRoleInstance(). getInstanceName().