Freigeben über


Konfigurieren von Anforderungen für verwaltete DevOps-Pools

Pipelines verwenden Anforderungen , um anzugeben, welche Funktionen ein Agent für Azure DevOps benötigt, um einen Pipelineauftrag an den Agent zu senden.

In verwalteten DevOps-Pools funktionieren Anforderungen genauso wie in Azure-Pipelines. Ein Pipelineauftrag wird an einen bestimmten Agent weitergeleitet, der Attribute aufweist, die der Anforderung entsprechen. Sie können einige Anforderungen wie WorkFolder und Priorityzum Konfigurieren von Attributen für den Agent verwenden.

In diesem Artikel werden die Anforderungen beschrieben, die in verwalteten DevOps-Pools verfügbar sind und wie sie verwendet werden.

Arbeitsordner

Der Standardarbeitsordner für Agents ist in der Regel D:\a\_work (oder C:\a\_work wenn die VM-Größe des Pools nicht über ein D Laufwerk verfügt) für Windows-Agents oder /mnt/vss/_work für Linux-Agents, und Ihre Pipeline kann mithilfe der Agent.WorkFoldervordefinierten Variablen darauf verweisen. Sie können diesen Speicherort außer Kraft setzen, um den Laufwerks- und den Verzeichnisnamen zu ändern, der verwendet wird, wenn der Agent gestartet wird, indem Sie die WorkFolder Anforderung in Ihrer Pipeline angeben.

Tipp

Die WorkFolder Anforderung konfiguriert einen benutzerdefinierten Agent-Arbeitsordner auf Pipelineebene. Um Ihre Agents so zu konfigurieren, dass für jeden Agent im Pool ein benutzerdefiniertes Arbeitsverzeichnis verwendet wird, konfigurieren Sie die Einstellung des Arbeitsordners .

Sofern Sie über einen zustandsbehafteten Pool mit einem ausgeführten Agenten verfügen, der WorkFolder Ihrer Anforderung entspricht, wird Ihr Pipeline-Auftrag an diesen Agenten gesendet. Wenn Sie keine zustandsbehafteten Pools verwenden oder kein Agent mit diesem WorkFolder ausgeführt wird, wird ein neuer Agent gestartet und für die Verwendung des vorgesehenen WorkFolder konfiguriert. Das angegebene Verzeichnis wird erstellt, wenn es nicht vorhanden ist. Wenn der Pfadname für den WorkFolder Wert ungültig ist, wird der Standardarbeitsordner des Agents verwendet.

Legen Sie ihren Agent-Arbeitsordner fest, indem Sie den WorkFolder Bedarf im demands Abschnitt Ihrer Pipeline konfigurieren. Wenn Sie einen angefügten Datenträger verwenden und ihren Agent-Arbeitsordner auf diesem Datenträger verwenden möchten, verwenden WorkFolder Und geben Sie einen Ordner auf dem Datenträger als Agentarbeitsverzeichnis an.

Der Standardarbeitsordner für Windows-Agents befindet sich in der Regel auf Laufwerk D. Sie können in Ihrer Pipeline mithilfe der Agent.WorkFoldervordefinierten Variablen darauf verweisen.

Im folgenden Beispiel WorkFolder wird auf einen angefügten Datenträger mit dem Buchstaben Ffestgelegt.

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

Priorität

Priority Gibt die Priorität des Auftrags an. Aufträge mit höherer Priorität werden zuerst ausgeführt. Gültige Werte sind: High, Medium, und Low. Der Standardwert ist Medium.

Konfigurieren Sie den Priority Bedarf im demands Abschnitt Ihrer Pipeline.

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

Aufträge werden für die Ausführung aus der Warteschlange in der Reihenfolge der Priorität ausgewählt. Sie verfügen beispielsweise über einen Pool mit einer maximalen Agenten-Einstellung von 10 und haben eine Pipeline so konfiguriert, dass sie diesen Pool verwendet. Der Pool führt bereits 10 Pipelines aus, und 20 weitere sind in Warteschlange. Wenn Sie eine Prioritätspipeline ausführen möchten, um einen Hotfix bereitzustellen, wird sie normalerweise erst nach Abschluss der 10 laufenden Pipelines und der 20 in die Warteschlange gestellten Pipelines ausgeführt. Wenn Sie die Priorität auf High setzen, während Sie Ihre dringende Pipeline in die Warteschlange stellen, wird ein Agent zugewiesen und sie wird vor den vorherigen 20 Pipelines in der Warteschlange ausgeführt.

Wenn mehrere Aufträge gleichzeitig in die Warteschlange gestellt werden, kann ein Auftrag mit niedrigerer Priorität vor einem Auftrag mit höherer Priorität ausgeführt werden.

Für den Fall einer einzelnen Pipeline mit mehreren Aufträgen:

  • Wenn Ihre Pipeline Abhängigkeiten enthält , die sequenzielle Aufträge definieren, werden die sequenziellen Aufträge in der von der Pipeline angegebenen Reihenfolge ausgeführt, unabhängig von der Prioritätseinstellung für jeden Auftrag.
  • Wenn Ihre Pipeline mehrere Aufträge für die parallele Ausführung konfiguriert hat ( dies ist die Standardeinstellung für YAML-Pipelines), werden die Aufträge gleichzeitig in die Warteschlange gestellt. Aufträge in der Pipeline mit einem Wert mit niedrigerer Priorität können vor Aufträgen in der Pipeline mit einem höheren Prioritätswert ausgeführt werden.

ImageOverride

Wenn Sie über mehrere Bilder in Ihrem Pool verfügen, können Sie Ihre Pipelines so konfigurieren, dass ein bestimmtes Image verwendet wird. Verwenden Sie die ImageOverride Anforderung, und geben Sie den Alias des Bilds an. Um ein Azure Pipelines-Image zu benutzen, verwenden Sie dessen vordefinierten Alias. Für alle anderen Bilder müssen Sie Ihre eigenen Aliase konfigurieren.

Wenn Sie über mehrere Images in Ihrem Pool verfügen und keine Vorgaben in Ihren Pipelines verwenden, um ein Image festzulegen, werden die Pipelines ausgeführt, indem das erste aufgelistete Image in Ihrem Pool verwendet wird. Sie können die Reihenfolge der Bilder in Ihrem Pool ändern, indem Sie die Reihenfolge der Bilder in der images Liste im fabricProfile Abschnitt ändern (wenn Sie Vorlagen verwenden). Sie können die Bilder auch in der Bilderliste im Azure-Portal sortieren, indem Sie sie ziehen.

Im folgenden Beispiel wird eine Pipeline so konfiguriert, dass sie auf einem Image ausgeführt wird, das mit einem ubuntu-24.04-gen2 Alias konfiguriert ist.

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

Wichtig

Platzieren Sie keine Anführungszeichen um den Aliasnamen in der ImageOverride Anforderung, auch wenn sie Leerzeichen im Namen enthält.

Bildversionsüberschreibung

Wenn Sie eine bestimmte Version des Images anstelle der durch die Imagekonfiguration angegebenen Version verwenden möchten, können Sie die ImageVersionOverride Anforderung verwenden. Sie können es beispielsweise verwenden, um eine neue Bildversion zu überprüfen, bevor Sie sie zum neuesten Bild hochstufen.

Wenn Sie ImageVersionOverride eine andere Imageversion als die in den Pooleinstellungen konfigurierte Version angeben, wird jeder Agent bei Bedarf mithilfe der angegebenen Imageversion gestartet. Standby-Agents werden mithilfe der in der Konfiguration Ihres Pools angegebenen Imageversionen bereitgestellt. Wenn Sie verwenden ImageVersionOverride, stimmen alle Standby-Agents nicht mit dieser Version überein, und ein neuer Agent wird gestartet.

Konfigurieren Sie den ImageVersionOverride Bedarf im demands Abschnitt Ihrer Pipeline. Im folgenden Beispiel wird eine ImageVersionOverride von 20250427.1.0.

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

Tipp

Wenn Sie der Meinung sind, dass eine Pipeline aufgrund einer Bildaktualisierung fehlschlägt, führen Sie das Verfahren in der Problembehandlung aus: Überprüfen Sie, ob ein Bildupdate vorhanden war.

Benutzerdefinierte Funktionen

Wenn Sie über zustandsbehaftete Pools verfügen und einen Auftrag für eine bestimmte laufende Agent-Instanz ausführen möchten, können Sie die CustomCapabilities Bedingung verwenden. Die CustomCapabilities Nachfrage gilt nur für Agents in zustandsbehafteten Pools. Wenn Sie zustandslose Pools verwenden, erhalten Sie für jeden Auftrag ein neues Agent-Image.

Wenn Sie eine CustomCapabilities genannte Anforderung in Ihrer Pipeline angeben, und wenn eine Pipeline mit derselben Anforderung vorher ausgeführt wurde, und der zustandsbehaftete Agent, der die Pipeline ausgeführt hat, noch online ist, wird dieser Agent zum Ausführen der Pipeline verwendet.

Wenn keine Online-Agents mit der CustomCapabilities Nachfrage übereinstimmen, wird ein Agent aus dem Pool bereitgestellt. Sie ist mit der CustomCapabilities Anforderung markiert und wird zur Ausführung der Pipeline verwendet.

Nachfolgende Aufträge mit derselben CustomCapabilities Anforderung verwenden die markierte Agentinstanz, um ihre Aufträge auszuführen, solange dieser Agent online ist.

Im folgenden Beispiel wird eine Pipeline mit dem windows-2022 Azure Pipelines-Image in einem zustandsbehafteten Pool ausgeführt. Wenn ein Online-Agent bereit ist, Aufträge anzunehmen und mit dem CustomCapabilities Attribut (festgelegt durch eine Pipeline, die zuvor im Agent ausgeführt wurde) gekennzeichnet ist, wird dieser Agent zum Ausführen dieser Pipeline verwendet. Wenn kein Online-Agent mit dieser Anforderung übereinstimmt, wird der nächste verfügbare Agent verwendet, um den Auftrag auszuführen, und der Agent wird mit dem CustomCapabilities Attribut markiert. Die zukünftigen Pipeline-Durchläufe werden mit diesem Bedarf auf diesem Agenten ausgeführt, wenn dieser online ist und für die Ausführung bereit ist.

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

Wenn Sie beispielsweise über ein großes Repository verfügen, das lange zum Klonen benötigt, und Sie mehrere Pipelines haben, die aus diesem Repository ausgeführt werden, können Sie dieselbe CustomCapabilities Anforderung in den Pipelines verwenden. Diese Anforderung hilft, dass die zweite Pipeline schneller ausgeführt wird, indem ein Agent verwendet wird, der bereits über einen Klon des Repositorys verfügt.