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 WorkFolder
Agent ausgeführt wird, wird ein neuer Agent gestartet und für die Verwendung des vorgesehenen WorkFolder
Agents 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.