Udostępnij przez


Konfigurowanie żądań dla zarządzanych pul DevOps

Potok danych używa zasobów do określenia, jakie możliwości są wymagane przez agenta, aby Azure DevOps mogło przesłać zadanie potoku do tego agenta.

W zarządzanych pulach DevOps, wymagania, takie jak ImageOverride, działają tak samo jak wymagania w usłudze Azure Pipelines. Zadanie potoku jest przydzielane do określonego agenta z atrybutami pasującymi do zapotrzebowania. Aby skonfigurować atrybuty agenta, można użyć niektórych wymagań, takich jak WorkFolder i Priority.

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 to zazwyczaj D:\a\_work (lub C:\a\_work, jeśli rozmiar maszyny wirtualnej puli nie ma D dysku) dla agentów systemu Windows lub /mnt/vss/_work dla agentów systemu Linux, a pipeline może się do niego odwoływać przy użyciu Agent.WorkFolderwstępnie zdefiniowanej zmiennej. Można zastąpić tę lokalizację, aby zmienić nazwę dysku i katalogu używanych, gdy agent jest uruchamiany, poprzez określenie żądania WorkFolder w potoku.

Wskazówka

Zapotrzebowanie WorkFolder konfiguruje niestandardowy folder roboczy agenta na poziomie potoku. Aby skonfigurować agentów do korzystania z niestandardowego katalogu roboczego dla wszystkich agentów w puli, skonfiguruj ustawienie Folder roboczy.

Jeśli masz pulę stanową z uruchomionym agentem odpowiadającym WorkFolder zapotrzebowaniu, zadanie potoku zostanie wysłane 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.

Ustaw folder roboczy agenta, konfigurując WorkFolder wymaganie w demands sekcji potokowej. 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 zwykle na dysku D. Możesz odwoływać się do niego w swojej ścieżce przy użyciu wstępnie zdefiniowanej zmiennej.

W poniższym przykładzie WorkFolder jest ustawiony na dołączony dysk danych z przypisaną literą F.

pool: 
  name: fabrikam-managed-pool # Name of 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, Mediumi Low. Domyślna wartość to Medium.

Priority Skonfiguruj zapotrzebowanie w demands sekcji potoku.

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

Zadania są wybierane do uruchamiania z kolejki w kolejności priorytetu. Na przykład masz pulę z maksymalną liczbą agentów ustawioną na 10 i skonfigurowałeś potok do korzystania z tej puli. Pula obecnie obsługuje 10 rurociągów, a kolejne 20 czeka w kolejce. Jeśli chcesz uruchomić priorytetowy pipeline, na przykład aby wdrożyć hotfix, zwykle będzie działał po zakończeniu 10 uruchomionych pipeline'ów i 20 pipeline'ów w kolejce. Jeśli podczas kolejkowania pilnego potoku ustawisz priorytet na High, agent zostanie uruchomiony przed 20 wcześniej zakolejkowanymi potokami.

Jeśli wiele zadań jest jednocześnie w kolejce, zadanie o niższym priorytcie może zostać 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 (co jest ustawieniem domyślnym dla potoków YAML), zadania są kolejkowane w tym samym czasie. Zadania w pipeline z niższą wartością priorytetu mogą być uruchamiane przed zadaniami w pipeline z wyższą wartością priorytetu.

NadpisanieObrazu

Jeśli masz wiele obrazów w puli, możesz skonfigurować potoki tak, aby używały określonego obrazu. ImageOverride Użyj żądania i podaj alias obrazu. Aby użyć obrazu usługi Azure Pipelines, użyj wstępnie zdefiniowanego aliasu. W przypadku wszystkich innych obrazów należy skonfigurować własne aliasy.

Jeśli masz wiele obrazów w swojej puli i nie używasz wymagań w swoich potokach do wyznaczenia obrazu, potoki są uruchamiane z wykorzystaniem pierwszego obrazu na liście w 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). Obrazy można również uporządkować na liście obrazów w witrynie Azure Portal, przeciągając je.

W poniższym przykładzie pipeline jest skonfigurowany do uruchamiania na obrazie, który ma przypisany alias ubuntu-24.04-gen2.

pool: 
  name: fabrikam-dev-pool # Name of 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 ustanowieniem jej jako najnowszej dla obrazu.

Jeśli używasz ImageVersionOverride polecenia , aby określić inną wersję obrazu niż skonfigurowana w ustawieniach puli, każdy agent jest uruchamiany na żądanie przy użyciu określonej wersji obrazu. Agenci gotowości są wdrażani przy użyciu wersji obrazów określonych w konfiguracji puli. Jeśli używasz programu ImageVersionOverride, wszyscy agenci rezerwowi nie pasują do tej wersji 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 pool
  demands:
  - ImageVersionOverride -equals 20250427.1.0

Wskazówka

Jeśli uważasz, że pipeline ulega awarii z powodu aktualizacji obrazu, postępuj zgodnie z procedurą w Temacie Rozwiązywanie problemów: aby sprawdzić, czy doszło do aktualizacji obrazu.

Dostosowane Możliwości

Jeśli masz pule stanowe i chcesz uruchomić zadanie dla określonego uruchomionego wystąpienia agenta, możesz użyć CustomCapabilities zapotrzebowania. 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 z tym samym zapotrzebowaniem został wcześniej uruchomiony, a stanowy agent, który uruchomił ten potok, jest nadal dostępny online, ten agent jest używany do uruchomienia potoku.

Jeśli żaden agent online nie odpowiada CustomCapabilities zapotrzebowaniu, agent jest przydzielany z puli. Jest on oznaczony żądaniem CustomCapabilities i służy do uruchamiania potoku.

Kolejne zadania z tym samym CustomCapabilities zapotrzebowaniem używają tagowanych wystąpień 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 przyjmowania zadań i ma przypisany atrybut CustomCapabilities (ustawiony przez potok, który wcześniej działał na agencie), ten agent jest wykorzystywany do uruchomienia tego potoku. 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 zapotrzebowaniem są uruchamiane na tym agencie, jeśli są w trybie online i są gotowe do pracy.

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

Jeśli na przykład masz duże repozytorium, którego klonowanie trwa długo, a masz wiele potoków uruchamianych z tego repozytorium, możesz użyć tego samego CustomCapabilities żądania w potokach. To zapotrzebowanie ułatwia szybsze uruchamianie drugiego potoku przy użyciu agenta, który ma już klon repozytorium.