Peticiones
Las demandas proporcionan una manera de que las canalizaciones especifiquen qué funcionalidades deben estar presentes en un agente para que Azure DevOps envíe un trabajo desde la canalización al agente. En grupos de DevOps administrados, las demandas como ImageOverride funcionan igual que las demandas en Azure Pipelines, donde un trabajo de canalización se enruta a un agente específico que tiene atributos que coinciden con la demanda, pero algunas demandas, como WorkFolder y Priority, se pueden usar para configurar atributos en el agente. En este artículo se describen las demandas disponibles en grupos de DevOps administrados y cómo usarlas.
WorkFolder
La carpeta de trabajo predeterminada para los agentes suele estar en la unidad D:\ para Windows o /mnt para Linux y se puede hacer referencia a ella en la canalización mediante la Agent.WorkFolder
variable predefinida. Puede invalidar esta ubicación para cambiar tanto la unidad como el nombre del directorio usados al iniciar el agente especificando la demanda en la WorkFolder
canalización. Si tiene un grupo con estado con un agente en ejecución con un WorkFolder
que coincide con la demanda, la canalización se enviará a ese agente. Si no usa grupos con estado o no hay ningún agente que se ejecute con , WorkFolder
se inicia y configura un nuevo agente para usar el designado WorkFolder
. Si no está presente, se crea el directorio especificado. Si el nombre de la ruta de acceso de WorkFolder
no es válido, se usa la carpeta de trabajo del agente predeterminada.
Configure la WorkFolder
demanda en la sección de la demands
canalización para establecer la carpeta de trabajo del agente. Si usa un disco de datos conectado y quiere que la carpeta de trabajo del agente esté en ese disco, use WorkFolder
y especifique una carpeta en el disco de datos como directorio de trabajo del agente.
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.
Prioridad
Priority
especifica la prioridad del trabajo. Los trabajos con mayor prioridad se ejecutan primero. Los valores válidos son: High
, Medium
, Low
. El valor predeterminado es Medium
.
Configure la Priority
demanda en la sección de la demands
canalización.
pool:
name: fabrikam-dev-pool # Name of Managed DevOps Pool
demands:
- Priority -equals Low
Los trabajos se seleccionan para ejecutarse desde la cola en orden de prioridad. Por ejemplo, tiene un grupo que tiene un valor máximo de agentes de 10 y una canalización configurada para usar este grupo. El grupo ya está ejecutando 10 canalizaciones y se ponen en cola 20 más. Si tiene una canalización de prioridad para ejecutarse, por ejemplo, para insertar una corrección activa, normalmente se ejecutaría después de que se completen las 10 canalizaciones en ejecución y las 20 canalizaciones en cola. Si establece prioridad en alta al poner en cola la canalización de revisiones, obtendrá un agente y se ejecutará antes de las 20 canalizaciones en cola anteriormente.
Si se ponen en cola varios trabajos al mismo tiempo, es posible que se ejecute un trabajo de prioridad inferior antes de un trabajo de prioridad más alta.
Para el caso de una sola canalización con varios trabajos:
- Si la canalización tiene dependencias que definen trabajos secuenciales, los trabajos secuenciales se ejecutan en el orden especificado por la canalización, independientemente de la configuración de prioridad de cada trabajo.
- Si la canalización tiene varios trabajos configurados para ejecutarse en paralelo (el valor predeterminado para las canalizaciones YAML), los trabajos se ponen en cola al mismo tiempo y los trabajos de la canalización con menor prioridad pueden ejecutarse antes de que los trabajos de la canalización tengan mayor prioridad.
ImageOverride
Si tiene varias imágenes en el grupo, puede configurar las canalizaciones para que usen una imagen específica mediante la ImageOverride
demanda y proporcionar el alias de la imagen que se va a usar. Si usa una imagen de Azure Pipelines, puede usar su alias predefinido. Para todas las demás imágenes, debe configurar sus propios alias.
En el ejemplo siguiente, una canalización está configurada para ejecutarse mediante una imagen configurada con un ubuntu-20.04-gen2
alias.
pool:
name: fabrikam-dev-pool # Name of Managed DevOps Pool
demands:
- ImageOverride -equals ubuntu-20.04-gen2
Importante
No coloque comillas alrededor del nombre del alias en la ImageOverride
demanda, incluso si tiene espacios en el nombre.
ImageVersionOverride
Si usa shared Image Gallery o una imagen de Azure Marketplace y quiere usar una versión específica de la imagen en lugar de la versión especificada por la configuración de la imagen, puede usar la ImageVersionOverride
demanda. Por ejemplo, puede usarlo para validar una nueva versión de imagen antes de promocionarla para que sea más reciente para una imagen. En los ejemplos siguientes se especifica un ImageVersionOverride
de 2.0.0
.
Configure la ImageVersionOverride
demanda en la sección de la demands
canalización.
pool:
name: fabrikam-dev-pool # Name of Managed DevOps Pool
demands:
- ImageVersionOverride -equals 2.0.0
CustomCapabilities
Si tiene grupos con estado y quiere una manera de ejecutar un trabajo en una instancia de agente en ejecución específica, puede usar la CustomCapabilities
demanda.
Importante
La CustomCapabilities
demanda solo se aplica a los agentes de grupos con estado. Al usar grupos sin estado, obtendrá una imagen de agente nueva para cada trabajo.
Cuando se especifica una CustomCapabilities
demanda en la canalización, si alguna canalización con la misma demanda se ha ejecutado anteriormente y el agente con estado que ejecutó la canalización todavía está en línea, ese agente se usará para ejecutar la canalización. Si ningún agente en línea coincide con la CustomCapabilities
demanda, se aprovisiona un agente desde el grupo, se etiqueta con la CustomCapabilities
demanda y se usa para ejecutar la canalización. Los trabajos posteriores con la misma CustomCapabilities
demanda usarán esa instancia de agente etiquetada para ejecutar sus trabajos siempre y cuando ese agente esté en línea.
En el ejemplo siguiente, se ejecuta una canalización mediante la windows-2022
imagen de Azure Pipelines en un grupo con estado. Si un agente en línea está listo para aceptar trabajos y se etiqueta con el CustomCapabilities
atributo (establecido por una canalización que se ejecutó anteriormente en el agente), ese agente se usará para ejecutar esta canalización. Si ningún agente en línea coincide con esta demanda, se usa el siguiente agente disponible para ejecutar el trabajo y el agente se etiqueta con el CustomCapabilities
atributo . Las futuras ejecuciones de canalización con esta demanda se ejecutarán en este agente, si está en línea y está lista para trabajos.
pool:
name: fabrikam-dev-pool # Name of Managed DevOps Pool
demands:
- ImageOverride -equals windows-2022
- CustomCapabilities -equals MyCustomValue
Por ejemplo, tiene un repositorio grande que tarda mucho tiempo en clonarse y tiene varias canalizaciones que se ejecutan desde este repositorio. El uso de la misma CustomCapabilities
demanda en las canalizaciones podría ayudar a que la segunda canalización se ejecute más rápidamente mediante el uso de un agente con el repositorio ya clonado.