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.