Поделиться через


Требования

Запросы позволяют конвейерам указывать, какие возможности должны присутствовать в агенте, чтобы 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 ранее очередных конвейеров.

Если одновременно несколько заданий помещаются в очередь, возможно, что задание с более низким приоритетом будет выполняться перед заданием с более высоким приоритетом.

В случае с одним конвейером с несколькими заданиями:

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 спроса в конвейерах может помочь второму конвейеру выполняться быстрее с помощью агента с репозиторием, уже клонированного.

См. также