Freigeben über


Forderungen

Anforderungen bieten eine Möglichkeit für Pipelines, um anzugeben, welche Funktionen in einem Agent vorhanden sein müssen, damit Azure DevOps einen Auftrag von der Pipeline an den Agent senden kann. In verwalteten DevOps-Pools funktionieren Anforderungen wie ImageOverride genauso wie Anforderungen in Azure Pipelines, bei denen ein Pipelineauftrag an einen bestimmten Agent weitergeleitet wird, der Attribute aufweist, die der Anforderung entsprechen, aber einige Anforderungen, wie WorkFolder und Priority, können zum Konfigurieren von Attributen für den Agent verwendet werden. In diesem Artikel werden die Anforderungen beschrieben, die in verwalteten DevOps-Pools verfügbar sind und wie sie verwendet werden.

WorkFolder

Der Standardarbeitsordner für Agents befindet sich in der Regel auf dem D:\ -Laufwerk für Windows oder /mnt für Linux und kann mithilfe der Agent.WorkFolder vordefinierten Variablen in Ihrer Pipeline referenziert werden. Sie können diesen Speicherort außer Kraft setzen, um den Laufwerk- und Verzeichnisnamen zu ändern, der beim Starten des Agents verwendet wird, indem Sie die WorkFolder Nachfrage in Ihrer Pipeline angeben. Wenn Sie über einen zustandsbehafteten Pool mit einem ausgeführten Agent verfügen, WorkFolder der Ihrer Anforderung entspricht, wird Ihre Pipeline an diesen Agent gesendet. Wenn Sie keine zustandsbehafteten Pools verwenden oder kein Agent mit diesem WorkFolderAgent ausgeführt wird, wird ein neuer Agent gestartet und für die Verwendung des vorgesehenen WorkFolderAgents 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.

Konfigurieren Sie die WorkFolder Anforderung im demands Abschnitt Ihrer Pipeline, um den Arbeitsordner ihres Agents festzulegen. 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.

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.

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, Low. Der Standardwert ist Medium.

Konfigurieren Sie den Priority Bedarf im demands Abschnitt Ihrer Pipeline.

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

Aufträge werden für die Ausführung aus der Warteschlange in der Reihenfolge der Priorität ausgewählt. So verfügen Sie beispielsweise über einen Pool mit einer Maximalen Agents-Einstellung von 10 und einer Pipeline, die für die Verwendung dieses Pools konfiguriert ist. Der Pool führt bereits 10 Pipelines aus, und 20 weitere werden in die Warteschlange gestellt. Wenn Sie eine Prioritätspipeline zum Ausführen haben, z. B. um einen Hot Fix herauszuschieben, wird sie normalerweise nach den 10 ausgeführten Pipelines und den 20 in die Warteschlange gestellten Pipelines ausgeführt. Wenn Sie beim Ansetzen der Hotfixpipeline Priorität auf "Hoch" festlegen, wird ein Agent abgerufen und vor den zuvor in die Warteschlange stehenden 20-Pipelines ausgeführt.

Wenn mehrere Aufträge gleichzeitig in die Warteschlange gestellt werden, ist es möglich, dass ein Auftrag mit niedrigerer Priorität vor einem Auftrag mit höherer Priorität ausgeführt wird.

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 (standard für YAML-Pipelines), werden die Aufträge gleichzeitig in die Warteschlange gestellt, und Aufträge in der Pipeline mit niedrigerer Priorität können ausgeführt werden, bevor Aufträge in der Pipeline mit höherer Priorität ausgeführt werden.

ImageOverride

Wenn Sie über mehrere Bilder in Ihrem Pool verfügen, können Sie Ihre Pipelines so konfigurieren, dass sie ein bestimmtes Bild verwenden, indem Sie die ImageOverride Nachfrage verwenden und den Alias des zu verwendenden Bilds bereitstellen. Wenn Sie ein Azure Pipelines-Image verwenden, können Sie dessen vordefinierten Alias verwenden. Für alle anderen Bilder müssen Sie Ihre eigenen Aliase konfigurieren.

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

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

Wichtig

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

ImageVersionOverride

Wenn Sie ein Freigegebenes Bildgalerie- oder Azure Marketplace-Image verwenden und eine bestimmte Version des Bilds anstelle der von Ihrer Imagekonfiguration angegebenen Version verwenden möchten, können Sie die ImageVersionOverride Nachfrage verwenden. Beispielsweise können Sie es verwenden, um eine neue Bildversion zu überprüfen, bevor Sie es für ein Bild als neuestes bewerben. In den folgenden Beispielen wird eine ImageVersionOverride von 2.0.0.

Konfigurieren Sie den ImageVersionOverride Bedarf im demands Abschnitt Ihrer Pipeline.

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

CustomCapabilities

Wenn Sie über zustandsbehaftete Pools verfügen und einen Auftrag für eine bestimmte ausgeführte Agent-Instanz ausführen möchten, können Sie die CustomCapabilities Anforderung verwenden.

Wichtig

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 Anforderung in Ihrer Pipeline angeben, wenn eine Pipeline mit derselben Nachfrage zuvor ausgeführt wurde und der zustandsbehaftete Agent, der die Pipeline ausgeführt hat, weiterhin 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, mit der CustomCapabilities Nachfrage gekennzeichnet und zum Ausführen der Pipeline verwendet. Nachfolgende Aufträge mit derselben CustomCapabilities Nachfrage verwenden diese 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 zu akzeptieren und mit dem CustomCapabilities Attribut (festgelegt durch eine Pipeline, die zuvor auf dem 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ünftige Pipeline wird mit dieser Anforderung ausgeführt, wenn sie online ist und für Aufträge bereit ist.

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

Beispielsweise haben Sie ein großes Repository, das lange dauert, um zu klonen, und Sie haben mehrere Pipelines, die aus diesem Repository ausgeführt werden. Die Verwendung der gleichen CustomCapabilities Nachfrage in den Pipelines könnte dazu beitragen, dass die zweite Pipeline schneller ausgeführt wird, indem ein Agent mit dem bereits geklonten Repository verwendet wird.

Siehe auch