Что такое параметр resourceId при попытке подключить виртуальные машины к среде?

#azure-devops-rest-api

Вопрос:

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

Согласно документации, я должен быть в состоянии захватить все машины, связанные с окружающей средой. Хотя, хоть убей меня, я не могу понять, что означает resourceId. Звонок будет выглядеть примерно так:

 GET https://dev.azure.com/{organization}/{project}/_apis/distributedtask/environments/{environmentId}/providers/virtualmachinegroups/{resourceId}/virtualmachines?api-version=6.0-preview.1
 

Все остальные параметры я могу понять, но не resourceId. Я был бы признателен за любую помощь.

Ответ №1:

Документ «Список виртуальных машин», похоже, имеет некоторые проблемы и нуждается в обновлении.

Чтобы просмотреть список виртуальных машин в среде, вы можете попробовать следующую конечную точку.

 GET https://dev.azure.com/{organization}/{project}/_apis/pipelines/environments/{environmentId}/providers/virtualmachines?api-version=6.1-preview.1
 

Я протестировал эту конечную точку на своей стороне, она может работать нормально.

[ОБНОВЛЕНИЕ]

Требуемая область должна быть «Окружающая среда (чтение и управление)«. Я протестировал PAT, который содержит только эту область для выполнения API, он может работать нормально и возвращать список виртуальных машин в указанной среде. При создании PAT вам также необходимо убедиться, что область организации содержит организацию, для которой выполняется API.

введите описание изображения здесь

А также убедитесь, что срок действия патента не истек.

Комментарии:

1. Как вы обнаружили конечную точку /конвейеры/среды? В последних документах среды находятся в конечной точке /distributedtask/environments, однако API для получения ресурсов с помощью идентификатора ресурса, похоже, не работает.

Ответ №2:

Я также узнал, что вы можете запросить следующие адреса для получения того же результата:

 https://dev.azure.com/{organization}/{project}/_apis/pipelines/environments/{envid}?expands=resourceReferences
 

и

 https://dev.azure.com/{organization}/{project}/_apis/distributedtask/environments/{envid}?expands=resourceReferences
 

Это приведет к появлению списка ресурсов с их тегами.

Я не совсем уверен, что это то же самое, что и ответ Брайта, поскольку в вызове нет ссылки на тип ресурса (виртуальная машина/кубернетес).