Требования
Запросы позволяют конвейерам указывать, какие возможности должны присутствовать в агенте, чтобы Azure DevOps отправлял задание из конвейера агенту. В управляемых пулах DevOps запросы, такие как ImageOverride , работают так же, как требования в Azure Pipelines, где задание конвейера направляется в конкретный агент, имеющий атрибуты, соответствующие требованию, но некоторые требования, такие как WorkFolder и Priority, можно использовать для настройки атрибутов агента. В этой статье описываются требования, доступные в управляемых пулах DevOps и их использовании.
WorkFolder
Рабочая папка по умолчанию для агентов обычно находится на диске D:\ для Windows или /mnt для Linux и может быть указана в конвейере с помощью Agent.WorkFolder
предопределенной переменной. Вы можете переопределить это расположение, чтобы изменить имя диска и каталога, используемого при запуске агента, указав WorkFolder
спрос в конвейере. Если у вас есть пул с отслеживанием состояния с запущенным агентом, WorkFolder
который соответствует вашему требованию, конвейер будет отправлен в этот агент. Если вы не используете пулы с отслеживанием состояния или с этим WorkFolder
агентом не работает, запускается новый агент и настраивается для использования указанного.WorkFolder
Указанный каталог создается, если он отсутствует. Если имя пути недопустимо WorkFolder
, используется рабочая папка агента по умолчанию.
WorkFolder
Настройте запрос в demands
разделе конвейера, чтобы задать рабочую папку агента. Если вы используете подключенный диск данных и хотите, WorkFolder
чтобы рабочую папку агента на этом диске использовали и укажите папку на диске данных в качестве рабочего каталога агента.
pool:
name: fabrikam-managed-pool # Name of Managed DevOps Pool
demands:
- WorkFolder -equals c:\custom-work-folder # Windows agent example
# Use a folder like /user/local/custom-work-folder for Linux
# or /mnt/storage/sdc/custom-work-folder if you're using a data disk.
Приоритет
Priority
указывает приоритет задания. Сначала выполняются задания с более высоким приоритетом. Допустимые значения: High
, Medium
, Low
. Значение по умолчанию — Medium
.
Priority
Настройте запрос в demands
разделе конвейера.
pool:
name: fabrikam-dev-pool # Name of Managed DevOps Pool
demands:
- Priority -equals Low
Задания выбираются для выполнения из очереди в порядке приоритета. Например, у вас есть пул с максимальным значением агентов 10 и конвейером, настроенным для использования этого пула. Пул уже работает на 10 конвейеров, а 20 других — в очереди. Если для запуска конвейера приоритета, например для принудительной отправки горячего исправления, обычно он будет выполняться после выполнения 10 запущенных конвейеров и 20 очередных конвейеров. Если при очереди конвейера исправлений задано значение приоритета, он получит агент и запустится до 20 ранее очередных конвейеров.
Если одновременно несколько заданий помещаются в очередь, возможно, что задание с более низким приоритетом будет выполняться перед заданием с более высоким приоритетом.
В случае с одним конвейером с несколькими заданиями:
- Если конвейер имеет зависимости, определяющие последовательные задания, последовательные задания выполняются в порядке, указанном конвейером независимо от параметра приоритета для каждого задания.
- Если конвейер имеет несколько заданий, настроенных параллельно (по умолчанию для конвейеров YAML), задания помещаются в очередь одновременно, а задания в конвейере с более низким приоритетом могут выполняться перед заданиями в конвейере с более высоким приоритетом.
ImageOverride
При наличии нескольких образов в пуле можно настроить конвейеры для использования определенного образа с помощью ImageOverride
запроса и предоставления псевдонима используемого образа. Если вы используете образ Azure Pipelines, можно использовать его предопределенный псевдоним. Для всех остальных изображений необходимо настроить собственные псевдонимы.
В следующем примере конвейер настраивается для запуска с помощью образа, настроенного с помощью псевдонима ubuntu-20.04-gen2
.
pool:
name: fabrikam-dev-pool # Name of Managed DevOps Pool
demands:
- ImageOverride -equals ubuntu-20.04-gen2
Внимание
Не помещайте кавычки вокруг имени псевдонима ImageOverride
в запросе, даже если он содержит пробелы в имени.
ImageVersionOverride
Если вы используете образ Общая коллекция образов или Azure Marketplace и хотите использовать определенную версию образа вместо версии, указанной конфигурацией образа, можно использовать ImageVersionOverride
запрос. Например, его можно использовать для проверки новой версии образа, прежде чем продвигать ее, чтобы она была последней для образа. В следующих примерах указывается значение ImageVersionOverride
2.0.0
.
ImageVersionOverride
Настройте запрос в demands
разделе конвейера.
pool:
name: fabrikam-dev-pool # Name of Managed DevOps Pool
demands:
- ImageVersionOverride -equals 2.0.0
CustomCapabilities
Если у вас есть пулы с отслеживанием состояния и требуется способ выполнения задания в определенном работающем экземпляре агента, можно использовать CustomCapabilities
запрос.
Внимание
Спрос CustomCapabilities
применяется только к агентам в пулах с отслеживанием состояния. При использовании пулов без отслеживания состояния вы получаете новый образ агента для каждого задания.
При указании CustomCapabilities
спроса в конвейере, если любой конвейер с тем же спросом выполняется ранее, а агент с отслеживанием состояния, запущенный конвейер, по-прежнему находится в сети, этот агент будет использоваться для запуска конвейера. Если онлайн-агенты не соответствуют CustomCapabilities
требованию, агент подготавливается из пула, помеченный CustomCapabilities
запросом и используется для запуска конвейера. Последующие задания с тем же CustomCapabilities
спросом будут использовать этот помеченный экземпляр агента для выполнения заданий до тех пор, пока этот агент находится в сети.
В следующем примере конвейер выполняется с помощью windows-2022
образа Azure Pipelines в пуле с отслеживанием состояния. Если веб-агент готов принять задания и помечен CustomCapabilities
атрибутом (заданным конвейером, который ранее работал на агенте), этот агент будет использоваться для запуска этого конвейера. Если веб-агент не соответствует этому требованию, следующий доступный агент используется для запуска задания, а агент помечен атрибутом CustomCapabilities
. Будущие запуски конвейера с этим требованием будут выполняться на этом агенте, если он находится в сети и готов к заданиям.
pool:
name: fabrikam-dev-pool # Name of Managed DevOps Pool
demands:
- ImageOverride -equals windows-2022
- CustomCapabilities -equals MyCustomValue
Например, у вас есть большой репозиторий, который занимает много времени для клонирования, и у вас есть несколько конвейеров, выполняемых из этого репозитория. Использование того же CustomCapabilities
спроса в конвейерах может помочь второму конвейеру выполняться быстрее с помощью агента с репозиторием, уже клонированного.