Udostępnij za pośrednictwem


Wymagania

Wymagania umożliwiają procesom określenie, jakie zdolności muszą być dostępne w agencie, aby Azure DevOps mogło wysłać zadanie z procesu do agenta. W zarządzanych pulach DevOps żądania, takie jak ImageOverride, działają tak samo jak żądania w Azure Pipelines, gdzie zadanie potoku jest kierowane do określonego agenta, który posiada atrybuty zgodne z żądaniem, ale niektóre żądania, takie jak WorkFolder i Priority, mogą być używane 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ływany w potoku przy użyciu wstępnie zdefiniowanej zmiennej. Można zastąpić tę lokalizację, aby zmienić zarówno nazwę dysku, jak i katalogu używanego przy uruchamianiu agenta, określając żądanie WorkFolder w potoku. Jeśli masz pulę zachowującą stan z uruchomionym agentem, który spełnia twoje zapotrzebowanie, przepływ pracy 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 znajdował się na tym dysku, użyj WorkFolder i określ folder na dysku danych jako katalog roboczy agenta.

Domyślny folder roboczy agentów systemu Windows jest zazwyczaj na dysku D:\ i może być przywoływany w potoku przy użyciu Agent.WorkFolder.

W poniższym przykładzie WorkFolder ustawiono jako dołączony dysk danych, który ma przypisaną literę F.

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

Priorytet

Priority określa priorytet zadania. Zadania o wyższym priorytcie są wykonywane najpierw. Prawidłowe wartości to: High, , MediumLow. 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. Zasób już uruchamia 10 potoków, a 20 kolejnych czeka w kolejce. Jeśli masz do uruchomienia potok priorytetowy, na przykład w celu wdrożenia szybkiej poprawki, zwykle zostanie uruchomiony po zakończeniu 10 uruchomionych potoków i 20 potoków w kolejce. Jeśli ustawisz priorytet na wysoki podczas kolejkowania swojej ścieżki poprawek, otrzyma agenta i zostanie uruchomiony przed 20 potokami już zakolejkowanymi.

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 (domyślne ustawienie dla potoków YAML), zadania są kolejkowane w tym samym czasie, a zadania w potoku o niższym priorytecie mogą być uruchamiane przed zadaniami w potoku o wyższym priorytecie.

NadpisanieObrazu

Jeśli masz wiele obrazów w puli, możesz skonfigurować potoki tak, aby używały określonego obrazu, korzystając z ImageOverride wymagania i podając 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.

Ważne

Jeśli masz wiele obrazów w swojej puli i nie stosujesz wymagań w potokach do wyznaczenia obrazu, potoki są uruchamiane przy użyciu pierwszego obrazu na liście w tej puli. Kolejność obrazów w puli można zmienić, zmieniając kolejność obrazów na liście w imagesfabricProfile sekcji (jeśli używasz szablonów) lub porządkując obrazy na liście obrazów w witrynie Azure Portal przy użyciu przeciągania i upuszczania.

W poniższym przykładzie potok skonfigurowano do uruchomienia przy użyciu obrazu skonfigurowanego z aliasem ubuntu-24.04-gen2.

pool: 
  name: fabrikam-dev-pool # Name of Managed DevOps Pool
  demands:
  - ImageOverride -equals ubuntu-24.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 chcesz użyć określonej wersji obrazu zamiast wersji wskazanej w konfiguracji obrazu, możesz użyć żądania ImageVersionOverride. Można na przykład użyć jej do zweryfikowania nowej wersji obrazu przed podwyższeniem jej do najnowszej wersji obrazu.

Ważne

Jeśli używasz ImageVersionOverride do określenia innej wersji obrazu niż skonfigurowana w ustawieniach puli, każdy agent zostaje uruchomiony na żądanie z użyciem określonej wersji obrazu.

Agenci rezerwowi są wdrażani przy użyciu wersji obrazów określonych w konfiguracji puli, więc jeśli używasz , agenci rezerwowi nie będą zgodni z tą wersją i zostanie uruchomiony nowy agent.

ImageVersionOverride Skonfiguruj zapotrzebowanie w demands sekcji potoku. W poniższym przykładzie określono element ImageVersionOverride o wartości 20250427.1.0.

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

Wskazówka

Jeśli uważasz, że pipeline kończy się niepowodzeniem z powodu aktualizacji obrazu, postępuj zgodnie z procedurą w temacie Rozwiązywanie problemów — sprawdź, czy wystąpiła aktualizacja obrazu.

Dostosowane Możliwości

Jeśli masz pule z zachowaniem stanu i chcesz uruchomić zadanie na określonym uruchomionym wystąpieniu agenta, możesz użyć żądania CustomCapabilities.

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 wymaganiom CustomCapabilities, agent jest przydzielany z puli, oznaczany wymaganiami CustomCapabilities i 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 pipeline jest uruchamiany przy użyciu windows-2022 obrazu usługi Azure Pipelines w stanie puli. Jeśli agent online jest gotowy do akceptowania zadań i jest atrybutem CustomCapabilities oznaczony (przez pipeline, który został wcześniej uruchomiony na agencie), ten agent będzie używany do uruchamiania tego pipeline. Jeśli żaden agent online nie odpowiada temu zapotrzebowaniu, zadanie zostanie uruchomione przez następnego dostępnego agenta, a agent ten zostanie otagowany za pomocą atrybutu CustomCapabilities. Przyszłe uruchomienia potoku z tym wymaganiem będą korzystać z tego agenta, jeśli jest online i gotowy do zadań.

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órego sklonowanie zajmuje dużo czasu, i masz wiele pipeline'ów, które działają z tego repozytorium. Użycie tego samego CustomCapabilities żądania w potokach może pomóc szybciej uruchomić drugi potok, korzystając z agenta z już sklonowanym repozytorium.

Zobacz też