Udostępnij za pośrednictwem


Wymagania

Wymagania umożliwiają potokom określenie, jakie możliwości muszą być obecne w agencie, aby usługa Azure DevOps wysyłała zadanie z potoku do agenta. W zarządzanych pulach DevOps żądania, takie jak ImageOverride , działają podobnie jak wymagania w usłudze Azure Pipelines, gdzie zadanie potoku jest kierowane do określonego agenta, który ma atrybuty pasujące do zapotrzebowania, ale niektóre wymagania, takie jak WorkFolder i Priority, mogą służyć do konfigurowania atrybutów agenta. W tym artykule opisano wymagania dostępne w zarządzanych pulach DevOps i sposób ich używania.

Folder roboczy

Domyślny folder roboczy agentów jest zwykle na dysku D:\ dla systemu Windows lub /mnt dla systemu Linux i może być przywoływane w potoku przy użyciu wstępnie zdefiniowanej Agent.WorkFolder zmiennej. Tę lokalizację można zastąpić, aby zmienić zarówno nazwę dysku, jak i katalogu używanego podczas uruchamiania agenta WorkFolder , określając zapotrzebowanie w potoku. Jeśli masz pulę stanową z uruchomionym agentem zgodnym z WorkFolder zapotrzebowaniem, potok zostanie wysłany do tego agenta. Jeśli nie używasz pul stanowych lub nie ma agenta uruchomionego z tym WorkFolderprogramem , zostanie uruchomiony nowy agent i skonfigurowany do korzystania z wyznaczonego WorkFolderelementu . Określony katalog zostanie utworzony, jeśli nie istnieje. Jeśli nazwa ścieżki dla WorkFolder elementu jest nieprawidłowa, zostanie użyty domyślny folder roboczy agenta.

WorkFolder Skonfiguruj zapotrzebowanie w demands sekcji potoku, aby ustawić folder roboczy agenta. Jeśli używasz dołączonego dysku danych i chcesz, aby folder roboczy agenta na tym dysku był używany, użyj WorkFolder i określ folder na dysku danych jako katalog roboczy agenta.

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.

Priorytet

Priority określa priorytet zadania. Zadania o wyższym priorytcie są wykonywane najpierw. Prawidłowe wartości to: High, , LowMedium. Domyślna wartość to Medium.

Priority Skonfiguruj zapotrzebowanie w demands sekcji potoku.

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

Zadania są wybierane do uruchamiania z kolejki w kolejności priorytetu. Na przykład masz pulę z maksymalnym ustawieniem agentów wynoszącym 10 i potokiem skonfigurowanym do korzystania z tej puli. Pula jest już uruchomiona 10 potoków, a 20 kolejnych jest w kolejce. Jeśli masz potok priorytetowy do uruchomienia, na przykład w celu wypychania poprawki na gorąco, zwykle będzie działać po zakończeniu 10 uruchomionych potoków i 20 potoków w kolejce. Jeśli ustawisz priorytet na wysoki podczas kolejkowania potoku poprawek, otrzyma agenta i zostanie uruchomiony przed 20 wcześniej w kolejce potoków.

Jeśli wiele zadań jest jednocześnie w kolejce, możliwe, że zadanie o niższym priorytcie zostanie uruchomione przed zadaniem o wyższym priorytcie.

W przypadku pojedynczego potoku z wieloma zadaniami:

  • Jeśli potok ma zależności definiujące zadania sekwencyjne, zadania sekwencyjne są uruchamiane w kolejności określonej przez potok niezależnie od ustawienia priorytetu dla każdego zadania.
  • Jeśli potok ma wiele zadań skonfigurowanych do równoległego uruchamiania (ustawienie domyślne dla potoków YAML), zadania są kolejkowane w tym samym czasie, a zadania w potoku o niższym priorytcie mogą być uruchamiane przed zadaniami w potoku o wyższym priorytcie.

ImageOverride

Jeśli masz wiele obrazów w puli, możesz skonfigurować potoki tak, aby używały określonego obrazu przy użyciu ImageOverride zapotrzebowania i udostępniają alias obrazu do użycia. Jeśli używasz obrazu usługi Azure Pipelines, możesz użyć wstępnie zdefiniowanego aliasu. W przypadku wszystkich innych obrazów należy skonfigurować własne aliasy.

W poniższym przykładzie potok jest skonfigurowany do uruchamiania przy użyciu obrazu skonfigurowanego z aliasem ubuntu-20.04-gen2 .

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

Ważne

Nie umieszczaj cudzysłowów wokół nazwy aliasu w ImageOverride żądaniu, nawet jeśli zawiera spacje w nazwie.

ImageVersionOverride

Jeśli używasz galerii obrazów udostępnionych lub obrazu witryny Azure Marketplace i chcesz użyć określonej wersji obrazu zamiast wersji określonej przez konfigurację obrazu, możesz użyć ImageVersionOverride zapotrzebowania. Można na przykład użyć jej do zweryfikowania nowej wersji obrazu przed podwyższeniem jej do najnowszej wersji obrazu. W poniższych przykładach określono element ImageVersionOverride 2.0.0.

ImageVersionOverride Skonfiguruj zapotrzebowanie w demands sekcji potoku.

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

CustomCapabilities

Jeśli masz pule stanowe i chcesz uruchomić zadanie w określonym uruchomionym wystąpieniu CustomCapabilities agenta, możesz użyć zapotrzebowania.

Ważne

Zapotrzebowanie CustomCapabilities dotyczy tylko agentów w pulach stanowych. Gdy używasz pul bezstanowych, otrzymujesz nowy obraz agenta dla każdego zadania.

Po określeniu CustomCapabilities zapotrzebowania w potoku, jeśli jakikolwiek potok o tym samym zapotrzebowaniu został uruchomiony wcześniej, a agent stanowy, który uruchomił potok, będzie nadal w trybie online, ten agent będzie używany do uruchamiania potoku. Jeśli żaden agent online nie odpowiada CustomCapabilities zapotrzebowaniu, agent jest aprowizowany z puli, oznaczony CustomCapabilities żądaniem i jest używany do uruchamiania potoku. Kolejne zadania z tym samym CustomCapabilities zapotrzebowaniem będą używać tego oznakowanego wystąpienia agenta do uruchamiania zadań tak długo, jak ten agent jest w trybie online.

W poniższym przykładzie potok jest uruchamiany przy użyciu windows-2022 obrazu usługi Azure Pipelines w puli stanowej. Jeśli agent online jest gotowy do akceptowania zadań i jest oznaczony CustomCapabilities atrybutem (ustawionym przez potok, który został wcześniej uruchomiony na agencie), ten agent będzie używany do uruchamiania tego potoku. Jeśli żaden agent online nie odpowiada temu zapotrzebowaniu, następnym dostępnym agentem jest używany do uruchamiania zadania, a agent zostanie otagowany za pomocą atrybutu CustomCapabilities . Przyszłe uruchomienia potoku z tym zapotrzebowaniem będą uruchamiane na tym agencie, jeśli jest on w trybie online i jest gotowy do pracy.

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

Na przykład masz duże repozytorium, które trwa długo, aby sklonować i masz wiele potoków uruchamianych z tego repozytorium. Użycie tego samego CustomCapabilities zapotrzebowania w potokach może pomóc w szybkim uruchomieniu drugiego potoku przy użyciu agenta z już sklonowanym repozytorium.

Zobacz też