Azure DevOps REST API — Получить пулы агентов для заданий?

#azure #rest #azure-devops

Вопрос:

Я использую API REST Azure DevOps для извлечения запусков конвейера (он же «сборки»). В ответе на сборку содержится множество хороших данных, но, похоже, пул, о котором он сообщает, применяется только в том случае, если в общем конвейере определен пул верхнего уровня.

Например, у меня есть конвейер, который выполняет несколько параллельных заданий, каждое из которых находится в отдельном пуле автономных агентов. Но когда я извлекаю сборку этого конвейера с помощью REST API, доступны только данные для пула конвейера, что является обычным Hosted Ubuntu 1604 ответом, который вы получаете для сборок, размещенных в Microsoft,-там нет упоминания о каком — либо из пулов агентов, размещенных самостоятельно, которые выполнили всю работу.

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

Есть ли какой-либо способ детализировать отдельные «задания», выполняемые как часть конвейера, и посмотреть, в каких пулах агентов они выполнялись, используя API REST?

Ответ №1:

Build Ответ содержит временную шкалу ссылок (в Links поле). visual-studio-ссылки-ссылки-в-ответе

Вы можете сформировать его так: https://dev.azure.com/<org>/<project>/_apis/build/builds/<buildId>/Timeline

Ответ Json содержит полезную информацию для каждого задания/задачи, включая queueId

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

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

1. Ах, спасибо за заметку о очереди! Я этого не заметил. В моем конкретном случае, однако, этот идентификатор очереди бесполезен, потому что этот идентификатор очереди является идентификатором очереди «конвейера» (агента, размещенного в Microsoft), а не идентификаторами очереди для любой из моих собственных очередей агентов, которые фактически выполняют мои задания.

2. У меня есть многоступенчатый конвейер, в котором один из этапов использует автономные агенты, и я могу видеть список очередей для обоих (в одной задаче есть список очередей агентов, размещенных в MS, а в другой задаче есть список очередей моих автономных агентов).

3. Я слишком рано отказался от очереди! Оказывается, каждая ссылка из вашего «пула» на проект представляет собой отдельную «очередь», поэтому, используя очередь временной шкалы, вам просто нужно вернуться к связанному идентификатору проекта, и вы можете собрать список всех пулов агентов, используемых заданием. Большое спасибо.

Ответ №2:

в настоящее время наш Rest API не может помочь нам детализировать отдельные «задания», выполняемые как часть конвейера, и посмотреть, в каких пулах агентов они выполнялись. Этот api Rest используется для поиска настроек по умолчанию для вашего конвейера. В качестве обходного пути мы можем использовать api: Сборки — Получить журнал сборки и найти имя агента, например так: введите описание изображения здесь