Sdílet prostřednictvím


Konfigurace požadavků pro spravované fondy DevOps

Kanály používají požadavky k určení možností, které agent potřebuje pro Azure DevOps k odeslání úlohy kanálu do agenta.

Ve spravovaných fondech DevOps požadavky ImageOverride fungují stejně jako požadavky ve službě Azure Pipelines. Úloha potrubí se směruje na konkrétního agenta, který má atributy odpovídající poptávce. K konfiguraci atributů agenta můžete použít některé požadavky, například WorkFolder a Priority.

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 v /mnt Linuxu a kanál na ni může odkazovat pomocí Agent.WorkFolderpř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 požadavku v pipeline.

Pokud máte stavový fond s běžícím agentem, který odpovídá vaší poptávce, vaše úloha v kanálu se odešle tomuto agentovi. Pokud nepoužíváte stavové fondy nebo s tím WorkFolder není spuštěn žádný agent, spustí se nový agent a nakonfiguruje se pro použití určeného 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.

Nastavte pracovní složku agenta tak, že nakonfigurujete požadavek WorkFolder v části demands svého kanálu. 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.

Výchozí pracovní složka pro agenty systému Windows je obvykle na jednotce D. Na ni v kanálu můžete odkazovat pomocí Agent.WorkFolderpředdefinované proměnné.

V následujícím příkladu WorkFolder je nastaven na připojený datový disk s písmenem F.

pool: 
  name: fabrikam-managed-pool # Name of pool
  demands:
  - WorkFolder -equals f:\custom-work-folder

Priorita

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

Nakonfigurujte požadavek Priority v sekci demands vašeho kanálu.

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

Úlohy jsou vybírány ke spuštění z fronty podle pořadí priority. Máte například fond s nastavením 10 maximálního počtu agentů a nakonfigurovali jste potrubí tak, aby využívalo tento fond. Fond už provozuje 10 pipeline a dalších 20 je ve frontě. Pokud chcete spustit prioritní kanál, například pro nasazení hotfixu, obvykle by se spustil až po dokončení 10 běžících kanálů a 20 kanálů, které jsou ve frontě. Pokud nastavíte prioritu na High při zařazení svého naléhavého pipeline do fronty, získá agenta a spustí se před 20 dříve zařazenými pipelines.

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

V případě jednoho potrubí s více úlohami:

ImageOverride

Pokud máte ve fondu více obrázků, můžete potrubí nakonfigurovat tak, aby používalo konkrétní obrázek. Použijte poptávku ImageOverride a zadejte alias obrázku. Pokud chcete použít image Azure Pipelines, použijte její předdefinovaný alias. U všech ostatních imagí musíte nakonfigurovat vlastní aliasy.

Pokud máte ve fondu více obrázků a nepoužíváte předpoklady v kanálech k určení obrázku, kanály se spouštějí s použitím prvního uvedeného obrázku ve vašem fondu. Pořadí obrázků ve fondu můžete změnit změnou pořadí obrázků v images seznamu v oddílu fabricProfile (pokud používáte šablony). Obrázky v seznamu imagí na webu Azure Portal můžete také uspořádat přetažením.

V následujícím příkladu je pipeline nakonfigurovaná tak, aby běžela na image, která používá alias ubuntu-24.04-gen2.

pool: 
  name: fabrikam-dev-pool # Name of pool
  demands:
  - ImageOverride -equals ubuntu-24.04-gen2

Důležité

Do požadavku nevkládejte uvozovky kolem názvu aliasu ImageOverride, a to ani v případě, že má v názvu mezery.

Náhrada verze obrázku

Pokud 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é obrazové verze předtím, než z ní učiníte poslední verzi image.

Když použijete ImageVersionOverride k určení jiné verze image, než je nakonfigurovaná v nastavení fondu, spustí se každý agent na vyžádání pomocí zadané verze image. Pohotovostní agenti jsou zřízeni pomocí verzí imagí zadaných v konfiguraci fondu. Pokud používáte ImageVersionOverride, žádný z pohotovostních agentů nemusí odpovídat této verzi, a proto se spustí nový agent.

Nakonfigurujte požadavek ImageVersionOverride v sekci demands vašeho kanálu. Následující příklad specifikuje ImageVersionOverride20250427.1.0.

pool: 
  name: fabrikam-dev-pool # Name of pool
  demands:
  - ImageVersionOverride -equals 20250427.1.0

Návod

Pokud se domníváte, že pipeline selhává kvůli aktualizaci image, postupujte podle pokynů v tématu Řešení potíží: Ověřte, zda nedošlo k aktualizaci image.

Vlastní schopnosti

Pokud máte stavové služby a chcete spustit úlohu na konkrétní spuštěné instance agenta, můžete použít požadavek CustomCapabilities. Poptávka CustomCapabilities se vztahuje pouze na agenty ve stavových fondech. Když používáte bezstavové fondy, získáte novou agentovou image pro každý úkol.

Pokud v kanálu zadáte poptávku CustomCapabilities, a pokud již v minulosti běžel nějaký pipeline se stejnou poptávkou a stavový agent, který tento pipeline provozoval, je stále online, pak se tento agent použije k jeho spuštění.

Pokud žádná online agenta neodpovídá poptávce CustomCapabilities , zřídí se agent z fondu. Je označený poptávkou CustomCapabilities a slouží ke spuštění kanálu.

Následné úlohy se stejnou CustomCapabilities poptávkou používají k spuštění úloh označenou instanci agenta, pokud je tento agent online.

V následujícím příkladu se pipeline spustí pomocí windows-2022 image Azure Pipelines ve stavovém poolu. Pokud je online agent připraven přijímat úlohy a je označen atributem CustomCapabilities (nastavený kanálem, který na agentu dříve běžel), tento agent se použije 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í pipeline s touto podmínkou proběhnou na tomto agentovi, pokud je online a připravený na úlohy.

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

Pokud máte například velké úložiště, které trvá klonování dlouhou dobu a máte více kanálů spuštěných z tohoto úložiště, můžete v kanálech použít stejnou CustomCapabilities poptávku. Tato poptávka pomáhá druhému kanálu běžet rychleji pomocí agenta, který už má klon úložiště.