Delen via


Eisen

Vereisten bieden een manier voor pijplijnen om op te geven welke mogelijkheden aanwezig moeten zijn in een agent, zodat Azure DevOps een taak van de pijplijn naar de agent kan verzenden. In Beheerde DevOps-pools werken vereisten zoals ImageOverride net als de vereisten in Azure Pipelines, waarbij een pijplijntaak wordt gerouteerd naar een specifieke agent met kenmerken die overeenkomen met de vraag, maar sommige vereisten, zoals WorkFolder en Priority, kunnen worden gebruikt om kenmerken op de agent te configureren. In dit artikel worden de vereisten beschreven die beschikbaar zijn in Beheerde DevOps-pools en hoe u deze kunt gebruiken.

Werkmappen

De standaardwerkmap voor agents bevindt zich doorgaans op het station D:\ voor Windows of /mnt voor Linux en kan in uw pijplijn worden verwezen met behulp van de Agent.WorkFolder vooraf gedefinieerde variabele. U kunt deze locatie overschrijven om zowel de stationsnaam als de mapnaam te wijzigen die wordt gebruikt bij het starten van de agent door de WorkFolder vraag in uw pijplijn op te geven. Als u een stateful pool met een actieve agent hebt die overeenkomt met WorkFolder uw vraag, wordt uw pijplijn naar die agent verzonden. Als u geen stateful pools gebruikt of er geen agent wordt uitgevoerd WorkFolder, wordt er een nieuwe agent gestart en geconfigureerd voor het gebruik van de aangewezen WorkFolder. De opgegeven map wordt gemaakt als deze niet aanwezig is. Als de padnaam voor de WorkFolder naam ongeldig is, wordt de standaardwerkmap van de agent gebruikt.

Configureer de WorkFolder vraag in de demands sectie van uw pijplijn om de werkmap van uw agent in te stellen. Als u een gekoppelde gegevensschijf gebruikt en uw agentwerkmap op die schijf wilt gebruiken, gebruikt WorkFolder u een map op de gegevensschijf en geeft u deze op als de werkmap van uw agent.

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.

Prioriteit

Priority geeft de prioriteit van de taak. Taken met een hogere prioriteit worden eerst uitgevoerd. Geldige waarden zijn: High, Medium, Low. De standaardwaarde is Medium.

Configureer de Priority vraag in de demands sectie van uw pijplijn.

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

Taken worden geselecteerd om uit de wachtrij te worden uitgevoerd in volgorde van prioriteit. U hebt bijvoorbeeld een pool met een maximuminstelling van 10 agents en een pijplijn die is geconfigureerd voor het gebruik van deze pool. De pool voert al 10 pijplijnen uit en er worden nog 20 pijplijnen in de wachtrij geplaatst. Als u een prioriteitspijplijn hebt om uit te voeren, bijvoorbeeld om een hot fix te pushen, wordt deze normaal gesproken uitgevoerd nadat de 10 actieve pijplijnen en de 20 pijplijnen in de wachtrij zijn voltooid. Als u prioriteit instelt op hoog bij het in wachtrij plaatsen van uw hotfix-pijplijn, krijgt deze een agent en wordt deze uitgevoerd vóór de 20 eerder in de wachtrij geplaatste pijplijnen.

Als meerdere taken tegelijkertijd in de wachtrij worden geplaatst, is het mogelijk dat een taak met een lagere prioriteit wordt uitgevoerd voordat een taak met een hogere prioriteit wordt uitgevoerd.

Voor het geval van één pijplijn met meerdere taken:

  • Als uw pijplijn afhankelijkheden bevat die sequentiële taken definiëren, worden de opeenvolgende taken uitgevoerd in de volgorde die is opgegeven door de pijplijn, ongeacht de prioriteitsinstelling voor elke taak.
  • Als uw pijplijn meerdere taken heeft geconfigureerd om parallel te worden uitgevoerd (de standaardinstelling voor YAML-pijplijnen), worden de taken tegelijkertijd in de wachtrij geplaatst en kunnen taken in de pijplijn met een lagere prioriteit worden uitgevoerd voordat taken in de pijplijn met een hogere prioriteit worden uitgevoerd.

ImageOverride

Als u meerdere installatiekopieën in uw pool hebt, kunt u uw pijplijnen configureren voor het gebruik van een specifieke installatiekopieën met behulp van de ImageOverride vraag en het opgeven van de alias van de installatiekopieën die u wilt gebruiken. Als u een Azure Pipelines-installatiekopieën gebruikt, kunt u de vooraf gedefinieerde alias gebruiken. Voor alle andere installatiekopieën moet u uw eigen aliassen configureren.

In het volgende voorbeeld is een pijplijn geconfigureerd voor uitvoering met behulp van een installatiekopieën die zijn geconfigureerd met een ubuntu-20.04-gen2 alias.

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

Belangrijk

Plaats geen aanhalingstekens rond de aliasnaam in de ImageOverride vraag, zelfs niet als deze spaties in de naam bevat.

ImageVersionOverride

Als u een Shared Image Gallery of Azure Marketplace-installatiekopieën gebruikt en een specifieke versie van de installatiekopieën wilt gebruiken in plaats van de versie die is opgegeven door uw installatiekopieënconfiguratie, kunt u de ImageVersionOverride vraag gebruiken. U kunt deze bijvoorbeeld gebruiken om een nieuwe versie van de installatiekopieën te valideren voordat u deze promoveert naar de nieuwste versie voor een installatiekopieën. In de volgende voorbeelden wordt een ImageVersionOverride van 2.0.0.

Configureer de ImageVersionOverride vraag in de demands sectie van uw pijplijn.

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

CustomCapabilities

Als u stateful pools hebt en u een manier wilt om een taak uit te voeren op een specifiek actief agentexemplaren, kunt u de CustomCapabilities vraag gebruiken.

Belangrijk

De CustomCapabilities vraag is alleen van toepassing op agents in stateful pools. Wanneer u staatloze pools gebruikt, krijgt u een nieuwe agentinstallatiekopieën voor elke taak.

Wanneer u een CustomCapabilities vraag in uw pijplijn opgeeft, als een pijplijn met dezelfde vraag eerder is uitgevoerd en de stateful agent die de pijplijn heeft uitgevoerd, nog steeds online is, wordt die agent gebruikt om de pijplijn uit te voeren. Als er geen onlineagenten overeenkomen met de CustomCapabilities vraag, wordt een agent ingericht vanuit de pool, gelabeld met de CustomCapabilities vraag en gebruikt om de pijplijn uit te voeren. Volgende taken met dezelfde CustomCapabilities vraag gebruiken dat gelabelde agentexemplaren om hun taken uit te voeren zolang die agent online is.

In het volgende voorbeeld wordt een pijplijn uitgevoerd met behulp van de windows-2022 Azure Pipelines-installatiekopieën in een stateful pool. Als een onlineagent klaar is om taken te accepteren en is gelabeld met het CustomCapabilities kenmerk (ingesteld door een pijplijn die eerder op de agent werd uitgevoerd), wordt die agent gebruikt om deze pijplijn uit te voeren. Als er geen onlineagent aan deze vraag voldoet, wordt de volgende beschikbare agent gebruikt om de taak uit te voeren en wordt de agent gelabeld met het CustomCapabilities kenmerk. Toekomstige pijplijnuitvoeringen met deze vraag worden uitgevoerd op deze agent, als deze online is en klaar is voor taken.

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

U hebt bijvoorbeeld een grote opslagplaats die lang duurt om te klonen en u hebt meerdere pijplijnen die vanuit deze opslagplaats worden uitgevoerd. Door dezelfde CustomCapabilities vraag in de pijplijnen te gebruiken, kan de tweede pijplijn sneller worden uitgevoerd met behulp van een agent met de opslagplaats die al is gekloond.

Zie ook