#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
Это приведет к появлению списка ресурсов с их тегами.
Я не совсем уверен, что это то же самое, что и ответ Брайта, поскольку в вызове нет ссылки на тип ресурса (виртуальная машина/кубернетес).