Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les pipelines utilisent des demandes pour spécifier les fonctionnalités dont un agent a besoin pour Qu’Azure DevOps envoie un travail de pipeline à l’agent.
Dans les pools DevOps gérés, les demandes telles que ImageOverride fonctionnent comme les demandes dans Azure Pipelines. Un travail de pipeline est routé vers un agent spécifique qui a des attributs qui correspondent à la demande. Vous pouvez utiliser certaines demandes, comme WorkFolder et Priority, pour configurer des attributs sur l’agent.
Cet article décrit les demandes disponibles dans les pools DevOps managés et comment les utiliser.
Dossier de travail
Le dossier de travail par défaut pour les agents est généralement D:\a\_work (ou C:\a\_work si la taille de machine virtuelle du pool n’a pas de D lecteur) pour les agents Windows ou /mnt/vss/_work pour les agents Linux, et votre pipeline peut le référencer à l’aide de la Agent.WorkFoldervariable prédéfinie. Vous pouvez remplacer cet emplacement pour modifier le nom du lecteur et du répertoire utilisé au démarrage de l’agent en spécifiant la WorkFolder demande dans votre pipeline.
Conseil / Astuce
La WorkFolder demande configure un dossier de travail d’agent personnalisé au niveau du pipeline. Pour configurer vos agents afin qu’ils utilisent un répertoire de travail personnalisé pour chaque agent du pool, configurez le paramètre dossier de travail .
Si vous disposez d’un pool avec état avec un agent en cours d’exécution avec un WorkFolder agent correspondant à votre demande, votre travail de pipeline est envoyé à cet agent. Si vous n’utilisez pas de pools avec état ou qu’aucun agent n’est en cours d’exécution avec ce WorkFolder, un nouvel agent est démarré et configuré pour utiliser le WorkFolder désigné. Le répertoire spécifié est créé s’il n’est pas présent. Si le nom du chemin d’accès n’est WorkFolder pas valide, le dossier de travail de l’agent par défaut est utilisé.
Définissez votre dossier de travail de l’agent en configurant la WorkFolder demande dans la demands section de votre pipeline. Si vous utilisez un disque de données attaché et souhaitez que votre dossier de travail agent sur ce disque, utilisez WorkFolder et spécifiez un dossier sur le disque de données comme répertoire de travail de votre agent.
Le dossier de travail par défaut pour les agents Windows est généralement sur le lecteur D. Vous pouvez le référencer dans votre pipeline à l’aide de la Agent.WorkFoldervariable prédéfinie.
Dans l’exemple suivant, WorkFolder est défini sur un disque de données attaché avec la lettre F.
pool:
name: fabrikam-managed-pool # Name of pool
demands:
- WorkFolder -equals f:\custom-work-folder
Priorité
Priority spécifie la priorité du travail. Les travaux dont la priorité est supérieure sont exécutés en premier. Les valeurs valides sont les suivantes : High, Mediumet Low. La valeur par défaut est Medium.
Configurez la Priority demande dans la demands section de votre pipeline.
pool:
name: fabrikam-dev-pool # Name of pool
demands:
- Priority -equals Low
Les travaux sont sélectionnés pour s’exécuter à partir de la file d’attente dans l’ordre de priorité. Par exemple, vous disposez d'un pool avec un paramètre de nombre maximal d'agents de 10, et vous avez configuré un pipeline pour utiliser ce pool. Le pool exécute déjà 10 pipelines et 20 autres sont en attente d'exécution. Si vous souhaitez exécuter un pipeline prioritaire, par exemple pour envoyer un correctif logiciel, il s’exécuterait normalement après les 10 pipelines en cours d’exécution et les 20 pipelines mis en file d’attente. Si vous définissez la priorité sur High lorsque vous mettez en file d’attente votre pipeline urgent, il reçoit un agent et s’exécute avant les 20 pipelines précédemment mis en file d’attente.
Si plusieurs travaux sont mis en file d'attente simultanément, il est possible qu'un travail de priorité inférieure s'exécute avant un travail de priorité supérieure.
Pour le cas d’un seul pipeline avec plusieurs travaux :
- Si votre pipeline a des dépendances qui définissent des travaux séquentiels, les travaux séquentiels s’exécutent dans l’ordre spécifié par le pipeline, quel que soit le paramètre de priorité pour chaque travail.
- Si votre pipeline a plusieurs travaux configurés pour s’exécuter en parallèle (qui est la valeur par défaut pour les pipelines YAML), les travaux sont mis en file d’attente en même temps. Les travaux du pipeline avec une valeur de priorité inférieure peuvent s’exécuter avant les travaux du pipeline avec une valeur de priorité plus élevée.
ImageOverride
Si vous avez plusieurs images dans votre pool, vous pouvez configurer vos pipelines pour utiliser une image spécifique. Utilisez la ImageOverride demande et fournissez l’alias de l’image. Pour utiliser une image Azure Pipelines, utilisez son alias prédéfini. Pour toutes les autres images, vous devez configurer vos propres alias.
Si vous avez plusieurs images dans votre pool et que vous n’utilisez pas de requêtes dans vos pipelines pour désigner une image, les pipelines s’exécutent en utilisant la première image répertoriée dans votre pool. Vous pouvez modifier l’ordre des images dans votre pool en modifiant l’ordre des images de la liste dans la imagesfabricProfile section (si vous utilisez des modèles). Vous pouvez également commander les images dans la liste des images dans le portail Azure en les faisant glisser.
Dans l’exemple suivant, un pipeline est configuré pour s’exécuter sur une image configurée avec un ubuntu-24.04-gen2 alias.
pool:
name: fabrikam-dev-pool # Name of pool
demands:
- ImageOverride -equals ubuntu-24.04-gen2
Important
Ne placez pas de guillemets autour du nom d’alias dans la ImageOverride demande, même s’il contient des espaces dans le nom.
ImageVersionOverride
Si vous souhaitez utiliser une version spécifique de l’image au lieu de la version spécifiée par votre configuration d’image, vous pouvez utiliser la ImageVersionOverride demande. Par exemple, vous pouvez l’utiliser pour valider une nouvelle version d’image avant de la promouvoir comme étant la plus récente pour une image.
Lorsque vous utilisez ImageVersionOverride pour spécifier une version d’image différente de celle configurée dans les paramètres de votre pool, chaque agent est démarré à la demande à l’aide de la version d’image spécifiée. Les agents de réserve sont approvisionnés en utilisant les versions d’image spécifiées dans la configuration de votre pool. Si vous utilisez ImageVersionOverride, les agents en attente ne sont pas compatibles avec cette version et un nouvel agent sera lancé.
Configurez la ImageVersionOverride demande dans la demands section de votre pipeline. L'exemple suivant spécifie un ImageVersionOverride de 20250427.1.0.
pool:
name: fabrikam-dev-pool # Name of pool
demands:
- ImageVersionOverride -equals 20250427.1.0
Conseil / Astuce
Si vous pensez qu’un pipeline échoue en raison d’une mise à jour d’image, suivez la procédure de résolution des problèmes : vérifiez s’il y a eu une mise à jour d’image.
Capacités Personnalisées
Si vous avez des pools avec état et que vous souhaitez exécuter un travail sur une instance spécifique d’agent en cours d’exécution, vous pouvez utiliser la condition CustomCapabilities. La CustomCapabilities demande s’applique uniquement aux agents dans des pools avec état. Lorsque vous utilisez des pools sans état, vous obtenez une nouvelle image d’agent pour chaque travail.
Lorsque vous spécifiez une CustomCapabilities demande dans votre pipeline, si un pipeline avec la même demande est exécuté précédemment et que l’agent avec état qui a exécuté le pipeline est toujours en ligne, cet agent est utilisé pour exécuter le pipeline.
Si aucun agent en ligne ne correspond à la CustomCapabilities demande, un agent est approvisionné à partir du pool. Il est étiqueté avec la CustomCapabilities requête et est utilisé pour exécuter le pipeline.
Les travaux suivants avec la même CustomCapabilities demande utilisent l’instance de l’agent étiqueté pour exécuter leurs travaux tant que cet agent est en ligne.
Dans l’exemple suivant, un pipeline est exécuté à l’aide de l’image windows-2022 Azure Pipelines dans un pool avec état. Si un agent en ligne est prêt à accepter des travaux et est marqué avec l’attribut CustomCapabilities (défini par un pipeline exécuté précédemment sur l’agent), cet agent est utilisé pour exécuter ce pipeline. Si aucun agent en ligne ne correspond à cette demande, l’agent disponible suivant est utilisé pour exécuter le travail et l’agent est étiqueté avec l’attribut CustomCapabilities . Les prochaines exécutions du pipeline s'exécutent sur cet agent, si celui-ci est en ligne et prêt pour les tâches.
pool:
name: fabrikam-dev-pool # Name of pool
demands:
- ImageOverride -equals windows-2022
- CustomCapabilities -equals MyCustomValue
Par exemple, si vous avez un dépôt volumineux qui prend beaucoup de temps à cloner et que vous avez plusieurs pipelines qui s’exécutent à partir de ce dépôt, vous pouvez utiliser la même exigence CustomCapabilities dans les pipelines. Cette requête aide le deuxième pipeline à s’exécuter plus rapidement à l’aide d’un agent qui dispose déjà d’un clone du référentiel.