Sdílet prostřednictvím


Požadavky

Požadavky poskytují způsob, jak kanály určit, jaké funkce musí být v agentu k dispozici, aby Služba Azure DevOps odeslala úlohu z kanálu do agenta. Ve spravovaných fondech DevOps požadavky, jako je ImageOverride , fungují stejně jako požadavky ve službě Azure Pipelines, kde se úloha kanálu směruje na konkrétního agenta, který má atributy odpovídající poptávce, ale některé požadavky, jako je WorkFolder a Priorita, se dají použít ke konfiguraci atributů v agentovi. Tento článek popisuje požadavky dostupné ve spravovaných fondech DevOps a jejich použití.

WorkFolder

Výchozí pracovní složka pro agenty je obvykle na jednotce D:\ pro Windows nebo /mnt pro Linux a lze na tuto složku odkazovat v kanálu pomocí Agent.WorkFolder předdefinované proměnné. Toto umístění můžete přepsat, abyste změnili název jednotky i adresáře použitý při spuštění agenta zadáním WorkFolder poptávky v kanálu. Pokud máte stavový fond se spuštěným agentem, WorkFolder který odpovídá vaší poptávce, kanál se odešle tomuto agentovi. Pokud nepoužíváte stavové fondy nebo s tím není spuštěn WorkFolderžádný agent , spustí se nový agent a nakonfiguruje se tak, aby používal určený WorkFolder. Zadaný adresář se vytvoří, pokud není k dispozici. Pokud je název WorkFolder cesty neplatný, použije se výchozí pracovní složka agenta.

Nakonfigurujte poptávku WorkFolder demands v části kanálu tak, aby nastavil pracovní složku agenta. Pokud používáte připojený datový disk a chcete, aby pracovní složka agenta na daném disku byla, použijte WorkFolder a zadejte složku na datovém disku jako pracovní adresář agenta.

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.

Priorita

Priority určuje prioritu úlohy. Nejprve se spustí úlohy s vyšší prioritou. Platné hodnoty jsou: High, Medium, Low. Výchozí hodnota je Medium.

Nakonfigurujte poptávku Priority demands v části kanálu.

pool: 
  name: fabrikam-dev-pool # Name of Managed DevOps Pool
  demands:
  - Priority -equals Low

Úlohy se vyberou, aby se spouštěly z fronty v pořadí podle priority. Máte například fond s maximálním nastavením agentů 10 a kanálem nakonfigurovaným pro použití tohoto fondu. Fond už používá 10 kanálů a dalších 20 se zařadí do fronty. Pokud máte spuštěný kanál s prioritou, například pro odeslání opravy za provozu, normálně by se spustil po 10 spuštěných kanálech a dokončení 20 kanálů ve frontě. Pokud nastavíte prioritu na vysokou při frontě kanálu oprav hotfix, získáte agenta a spustí se před 20 dříve zařazených kanálů do fronty.

Pokud je ve frontě více úloh současně, je možné, že úloha s nižší prioritou se spustí před úlohou s vyšší prioritou.

V případě jednoho kanálu s více úlohami:

  • Pokud váš kanál obsahuje závislosti, které definují sekvenční úlohy, spustí se sekvenční úlohy v pořadí určeném kanálem bez ohledu na nastavení priority pro každou úlohu.
  • Pokud má váš kanál nakonfigurovaných několik úloh pro paralelní spuštění (výchozí nastavení pro kanály YAML), úlohy se zařadí do fronty současně a úlohy v kanálu s nižší prioritou se můžou spouštět před úlohami v kanálu s vyšší prioritou.

ImageOverride

Pokud máte ve fondu více imagí, můžete kanály nakonfigurovat tak, aby používaly konkrétní image, a to pomocí ImageOverride poptávky a poskytnutím aliasu image, který se má použít. Pokud používáte image Azure Pipelines, můžete použít její předdefinovaný alias. U všech ostatních imagí musíte nakonfigurovat vlastní aliasy.

V následujícím příkladu je kanál nakonfigurovaný tak, aby se spustil pomocí image, která je nakonfigurovaná s aliasem ubuntu-20.04-gen2 .

pool: 
  name: fabrikam-dev-pool # Name of Managed DevOps Pool
  demands:
  - ImageOverride -equals ubuntu-20.04-gen2

Důležité

Do poptávky nevkládejte uvozovky ImageOverride , a to ani v případě, že má v názvu mezery.

ImageVersionOverride

Pokud používáte image Shared Image Gallery nebo Azure Marketplace a chcete místo verze určené konfigurací image použít konkrétní verzi image, můžete tuto poptávku ImageVersionOverride použít. Můžete ji například použít k ověření nové verze image před povýšením na nejnovější verzi image. Následující příklady určují hodnotu ImageVersionOverride 2.0.0.

Nakonfigurujte poptávku ImageVersionOverride demands v části kanálu.

pool: 
  name: fabrikam-dev-pool # Name of Managed DevOps Pool
  demands:
  - ImageVersionOverride -equals 2.0.0

CustomCapabilities

Pokud máte stavové fondy a chcete spustit úlohu na konkrétní spuštěné instanci agenta, můžete tuto poptávku CustomCapabilities použít.

Důležité

Poptávka CustomCapabilities se vztahuje pouze na agenty ve stavových fondech. Když používáte bezstavové fondy, získáte novou image agenta pro každou úlohu.

Pokud v kanálu zadáte poptávku CustomCapabilities , spustí se dříve jakýkoli kanál se stejnou poptávkou a stavový agent, který kanál spustil, bude tento agent použit ke spuštění kanálu. Pokud žádný online agent neodpovídá poptávce CustomCapabilities , z fondu se zřídí agent, označí se poptávkou CustomCapabilities a použije se ke spuštění kanálu. Následující úlohy se stejnou CustomCapabilities poptávkou použijí k spuštění úloh označenou instanci agenta, pokud je tento agent online.

V následujícím příkladu se kanál spustí pomocí windows-2022 image Azure Pipelines ve stavovém fondu. Pokud je online agent připravený přijímat úlohy a je označen atributem CustomCapabilities (nastaveným kanálem, který dříve běžel v agentu), bude tento agent použit ke spuštění tohoto kanálu. Pokud žádný online agent neodpovídá této poptávce, použije se k spuštění úlohy další dostupný agent a agent se označí atributem CustomCapabilities . Budoucí spuštění kanálu s touto poptávkou se bude spouštět na tomto agentu, pokud je online a připravená pro úlohy.

pool: 
  name: fabrikam-dev-pool # Name of Managed DevOps Pool
  demands:
  - ImageOverride -equals windows-2022
  - CustomCapabilities -equals MyCustomValue

Máte například velké úložiště, které trvá delší dobu klonování a máte několik kanálů, které se spouštějí z tohoto úložiště. Použití stejné CustomCapabilities poptávky v kanálech by mohlo pomoct rychlejšímu spuštění druhého kanálu pomocí agenta s již naklonovaným úložištěm.

Viz také