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 WorkFolder
programem , zostanie uruchomiony nowy agent i skonfigurowany do korzystania z wyznaczonego WorkFolder
elementu . 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
, , Low
Medium
. 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.