Compartir a través de


Configuración de demandas para grupos de DevOps administrados

Las canalizaciones usan demandas para especificar qué funcionalidades necesita un agente para Azure DevOps para enviar un trabajo de canalización al agente.

En grupos de DevOps administrados, las demandas como ImageOverride funcionan igual que las demandas en Azure Pipelines. Un trabajo de tubería se enruta a un agente específico que tiene atributos que se ajustan a la demanda. Puede usar algunas demandas, como WorkFolder y Priority, para configurar atributos en el agente.

En este artículo se describen las demandas disponibles en grupos de DevOps administrados y cómo usarlas.

Carpeta de Trabajo

La carpeta de trabajo predeterminada para los agentes suele ser D:\a\_work (o C:\a\_work si el tamaño de la máquina virtual del grupo no incluye una unidad D) para los agentes de Windows o /mnt/vss/_work para los agentes de Linux, y el pipeline puede hacer referencia a ella mediante la Agent.WorkFoldervariable predefinida. Puede sobrescribir esta ubicación para cambiar tanto el nombre de la unidad como el del directorio que se usa cuando el agente comienza, especificando la demanda en la WorkFolder canalización.

Sugerencia

La demanda WorkFolder configura al nivel de la canalización una carpeta de trabajo para el agente personalizado. Para configurar los agentes para que usen un directorio de trabajo personalizado para cada agente del grupo, configure la opción Carpeta de trabajo.

Si tiene un grupo de estado con un agente en ejecución con un WorkFolder que coincide con la demanda, se envía el trabajo de canalización a ese agente. Si no está utilizando grupos con estado, o no hay ningún agente ejecutándose con ese WorkFolder, se iniciará y configurará un nuevo agente para que utilice el WorkFolder designado. 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.

Establezca la carpeta de trabajo del agente configurando el requisito WorkFolder en la sección demands de su canalización. 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.

La carpeta de trabajo predeterminada para los agentes de Windows suele estar en la unidad D. Puede hacer referencia a ella en la canalización mediante la Agent.WorkFoldervariable predefinida.

En el ejemplo siguiente, WorkFolder se establece en un disco de datos conectado con la letra F.

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

Prioridad

Priority especifica la prioridad del trabajo. Los trabajos con mayor prioridad se ejecutan primero. Los valores válidos son: High, Mediumy Low. El valor predeterminado es Medium.

Configura la Priority demanda en la sección demands de la canalización.

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

Los trabajos se seleccionan para ejecutarse desde la cola según el orden de prioridad. Por ejemplo, tiene un grupo que tiene un valor máximo de agentes de 10 y configuró una canalización para usar este grupo. El conjunto ya está ejecutando 10 canalizaciones y hay 20 más en cola. Si desea ejecutar una canalización de prioridad, por ejemplo, para insertar una corrección urgente, normalmente se ejecutaría después de que finalicen las 10 canalizaciones en ejecución y las 20 canalizaciones en cola. Si establece la prioridad en High al poner en cola la canalización urgente, obtiene un agente y se ejecuta antes de las 20 canalizaciones en cola anteriormente.

Si se ponen en cola varios trabajos al mismo tiempo, un trabajo de prioridad inferior podría ejecutarse antes de un trabajo de mayor prioridad.

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 (que es el valor predeterminado para las canalizaciones YAML), los trabajos se ponen en cola al mismo tiempo. Los trabajos en la tubería con un valor de prioridad inferior pueden ejecutarse antes que los trabajos en la tubería con un valor de prioridad mayor.

Anulación de Imagen

Si tiene varias imágenes en su banco, puede configurar los pipelines para que usen una imagen específica. Use la ImageOverride demanda y proporcione el alias de la imagen. Para usar una imagen de Azure Pipelines, use su alias predefinido. Para todas las demás imágenes, debe configurar sus alias propios.

Si tiene varias imágenes en su grupo de imágenes y no usa requisitos en las canalizaciones para designar una imagen, las canalizaciones se ejecutan mediante la primera imagen listada en el grupo de imágenes. Puede cambiar el orden de las imágenes del grupo cambiando el orden de las imágenes de la images lista de la fabricProfile sección (si usa plantillas). También puede ordenar las imágenes de la lista de imágenes en Azure Portal arrastrándolas.

En el ejemplo siguiente, una canalización está configurada para ejecutarse en una imagen configurada con un ubuntu-24.04-gen2 alias.

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

Importante

No coloque comillas alrededor del nombre del alias en la ImageOverride solicitud, incluso si tiene espacios en el nombre.

ImageVersionOverride

Si 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 promoverla para que sea más reciente para una imagen.

Cuando se usa ImageVersionOverride para especificar una versión de imagen diferente a la configurada en la configuración del grupo, cada agente se inicia a petición mediante la versión de imagen especificada. Los agentes de respaldo se aprovisionan mediante las versiones de imágenes especificadas en la configuración del grupo. Si usa ImageVersionOverride, los agentes en espera no coinciden con esa versión y se inicia un agente nuevo.

Configura la ImageVersionOverride demanda en la sección demands de la canalización. En el ejemplo siguiente se especifica un ImageVersionOverride de 20250427.1.0.

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

Sugerencia

Si cree que se produce un error en una canalización debido a una actualización de imagen, siga el procedimiento descrito en Solución de problemas: Compruebe si se ha producido una actualización de imagen.

Capacidades Personalizadas

Si tiene grupos con estado y quiere ejecutar un trabajo en una instancia de agente en ejecución específica, puede usar la CustomCapabilities demanda. La demanda de CustomCapabilitiessolo se aplica a los agentes de grupos con estado. Al usar grupos sin estado, obtendrá una imagen de agente nueva para cada trabajo.

Al especificar 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 usa para ejecutar la canalización.

Si ningún agente en línea coincide con la CustomCapabilities demanda, se asigna un agente del grupo. Está etiquetado con la CustomCapabilities demanda y se utiliza para ejecutar la canalización.

Los trabajos subsecuentes con el mismo CustomCapabilities deben usar esa instancia de agente etiquetada para ejecutar sus trabajos mientras ese agente esté en línea.

En el ejemplo siguiente, se ejecuta una canalización utilizando la imagen de Azure Pipelines windows-2022 en un grupo con estado. Si un agente en línea está listo para aceptar trabajos y se etiqueta con el atributo CustomCapabilities (establecido por una canalización que se ejecutó anteriormente en el agente), dicho agente se utiliza para ejecutar dicha 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 del pipeline con esta configuración se ejecutan en este agente, si está en línea y listo para trabajos.

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

Por ejemplo, si tiene un repositorio grande que tarda mucho tiempo en clonarse y tiene varias canalizaciones que se ejecutan desde este repositorio, puede usar la misma CustomCapabilities demanda en las canalizaciones. Este requisito ayuda a que la segunda canalización se ejecute más rápido, al utilizar un agente que ya tiene un clon del repositorio.