BatchJobManagerTask interface

Określa szczegóły zadania Menedżera zadań. Zadanie Menedżera zadań jest uruchamiane automatycznie po utworzeniu zadania. Usługa Batch próbuje zaplanować zadanie Menedżera zadań przed innymi zadaniami w zadaniu. Podczas zmniejszania puli usługa Batch próbuje zachować węzły, w których zadania menedżera zadań są uruchamiane tak długo, jak to możliwe (czyli węzły obliczeniowe z uruchomionymi zadaniami normalnymi są usuwane przed węzłami obliczeniowymi z uruchomionymi zadaniami Menedżera zadań). Gdy zadanie Menedżera zadań kończy się niepowodzeniem i musi zostać uruchomione ponownie, system próbuje zaplanować go o najwyższym priorytetzie. Jeśli nie ma dostępnych bezczynnych węzłów obliczeniowych, system może zakończyć jedną z uruchomionych zadań w puli i zwrócić ją do kolejki, aby umożliwić ponowne uruchomienie zadania Menedżera zadań. Należy pamiętać, że zadanie Menedżera zadań w jednym zadaniu nie ma priorytetu nad zadaniami w innych zadaniach. W przypadku zadań obserwowane są tylko priorytety na poziomie zadania. Jeśli na przykład menedżer zadań w zadaniu o priorytecie 0 musi zostać uruchomiony ponownie, nie spowoduje to przesiedleń zadań o priorytecie 1. Usługa Batch ponowi próbę wykonania zadań po wyzwoleniu operacji odzyskiwania w węźle. Przykłady operacji odzyskiwania obejmują (ale nie tylko) ponowne uruchomienie węzła w złej kondycji lub zniknięcie węzła obliczeniowego z powodu awarii hosta. Ponowne próby z powodu operacji odzyskiwania są niezależne i nie są liczone względem parametru maxTaskRetryCount. Nawet jeśli parametr maxTaskRetryCount wynosi 0, może wystąpić wewnętrzna ponowna próba spowodowana operacją odzyskiwania. W związku z tym wszystkie zadania powinny być idempotentne. Oznacza to, że zadania muszą tolerować przerywanie i ponowne uruchamianie bez powodowania uszkodzenia lub duplikowania danych. Najlepszym rozwiązaniem dla długotrwałych zadań jest użycie jakiejś formy tworzenia punktów kontrolnych.

Właściwości

allowLowPriorityNode

Czy zadanie Job Manager może działać na węźle Spot/Low-Priority Compute. Wartość domyślna to true.

applicationPackageReferences

Lista pakietów aplikacji, które usługa wsadowa wdroży do węzła obliczeniowego przed uruchomieniem linii poleceń. Pakiety aplikacji są pobierane i wdrażane w katalogu współdzielonym, a nie w katalogu roboczym Task. Dlatego jeśli odwołany pakiet aplikacji jest już na węźle Compute i jest aktualny, nie jest ponownie pobierany; używana jest istniejąca kopia na węźle obliczeniowym. Jeśli odwołany pakiet aplikacji nie może zostać zainstalowany, na przykład dlatego, że pakiet został usunięty lub pobranie się nie powiodło, zadanie nie może zostać załatwione.

commandLine

Linia poleceń zadania Menedżera Zadań. Wiersz polecenia nie jest uruchamiany w powłoce i dlatego nie może korzystać z funkcji powłoki, takich jak rozszerzenie zmiennej środowiskowej. Jeśli chcesz skorzystać z takich funkcji, powinieneś wywołać powłokę w wierszu poleceń, na przykład używając "cmd /c MyCommand" w Windows lub "/bin/sh -c MyCommand" w Linuksie. Jeśli wiersz polecenia odwołuje się do ścieżek plików, powinien użyć ścieżki względnej (względem katalogu roboczego zadania) lub użyć zmiennej środowiskowej udostępnionej w usłudze Batch (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables).

constraints

Ograniczenia dotyczące zadania Menedżera Zadań.

containerSettings

Ustawienia kontenera, pod którym działa Task Manager Task Manager. Jeśli pula uruchamiająca to zadanie ma ustawioną containerConfiguration, to również musi być ustawiona. Jeśli pula, która wykona to zadanie, nie ma ustawionej containerConfiguration, nie może być ustawiona. Gdy to zostanie określone, wszystkie katalogi rekurencyjnie poniżej AZ_BATCH_NODE_ROOT_DIR (korzeń katalogów Azure Batch na węźle) są mapowane do kontenera, wszystkie zmienne środowiskowe Task są mapowane do kontenera, a wiersz poleceń Task jest wykonywany w kontenerze. Pliki wytworzone w kontenerze poza AZ_BATCH_NODE_ROOT_DIR mogą nie być odzwierciedlone na dysku hosta, co oznacza, że API plików wsadowych nie będą miały dostępu do tych plików.

displayName

Nazwa wyświetlana zadania Menedżera Zadań. Nie musi być unikalny i może zawierać dowolne znaki Unicode do maksymalnej długości 1024.

environmentSettings

Lista ustawień zmiennych środowiskowych dla zadania Menedżera Zadań.

id

Ciąg znaków, który jednoznacznie identyfikuje zadanie Menedżera Zadań w ramach zadania. ID może zawierać dowolną kombinację znaków alfanumerycznych, w tym łączników i podkreśleń, i nie może zawierać więcej niż 64 znaki.

killJobOnCompletion

Czy ukończenie zadania Kierownika Zadań oznacza ukończenie całego Zadania. Jeśli to prawda, po zakończeniu zadania Menedżera Zadań usługa Batch oznacza zadanie jako ukończone. Jeśli w tym czasie nadal działają jakieś zadania (poza Job Release), są one zakończane. Jeśli nieprawda, zakończenie zadania Menedżera Zadań nie wpływa na status Zadania. W takim przypadku powinieneś użyć atrybutu onAllTasksComplete do zakończenia zadania lub poprosić klienta lub użytkownika, by zakończył zadanie wyraźnie. Przykładem jest sytuacja, gdy Menedżer Zadań tworzy zestaw Zadań, ale nie odgrywa dalszej roli w ich wykonaniu. Wartość domyślna to true. Jeśli używasz atrybutów onAllTasksComplete i onTaskFailure do kontrolowania czasu życia Zadania, a Menedżera Zadań używasz tylko do tworzenia Zadań dla zadania (nie do monitorowania postępów), to ważne jest, aby ustawić killJobOnCompletion na false.

outputFiles

Lista plików, które usługa wsadowa zagra z węzła obliczeniowego po uruchomieniu linii poleceń. W przypadku zadań wieloinstancjowych pliki będą przesyłane wyłącznie z węzła obliczeniowego, na którym wykonywane jest główne zadanie.

requiredSlots

Liczba slotów harmonogramowych wymaganych do wykonania zadania. Wartością domyślną jest 1. Zadanie może być zaplanowane do uruchomienia na węźle obliczeniowym tylko wtedy, gdy węzeł ma wystarczająco dużo wolnych slotów do planowania. Dla zadań wieloinstancjowych ta właściwość nie jest obsługiwana i nie może być określana.

resourceFiles

Lista plików, które usługa Batch pobierze do węzła obliczeniowego przed uruchomieniem wiersza polecenia. Pliki wymienione w ramach tego elementu znajdują się w katalogu roboczym zadania. Istnieje maksymalny rozmiar listy plików zasobów. Po przekroczeniu maksymalnego rozmiaru żądanie zakończy się niepowodzeniem, a kod błędu odpowiedzi to RequestEntityTooLarge. W takim przypadku należy zmniejszyć rozmiar kolekcji plików ResourceFiles. Można to osiągnąć przy użyciu plików .zip, pakietów aplikacji lub kontenerów platformy Docker.

runExclusive

Czy zadanie Job Manager wymaga wyłącznego użycia węzła obliczeniowego, w którym działa. Jeśli to prawda, żadne inne zadania nie będą działać na tym samym węźle tak długo, jak działa menedżer zadań. Jeśli to nieprawda, inne zadania mogą działać jednocześnie z Menedżerem zadań na węźle obliczeniowym. Zadanie Menedżera Zadań normalnie liczy się do limitu współbieżnych zadań węzła obliczeniowego, więc jest to istotne tylko wtedy, gdy węzeł obliczeniowy pozwala na wiele równoczesnych zadań. Wartość domyślna to true.

userIdentity

Tożsamość użytkownika, pod którą działa zadanie Menedżera Zadań. Jeśli zostanie pominięte, Zadanie działa jako użytkownik nieadministracyjny, unikalny dla Zadania.

Szczegóły właściwości

allowLowPriorityNode

Czy zadanie Job Manager może działać na węźle Spot/Low-Priority Compute. Wartość domyślna to true.

allowLowPriorityNode?: boolean

Wartość właściwości

boolean

applicationPackageReferences

Lista pakietów aplikacji, które usługa wsadowa wdroży do węzła obliczeniowego przed uruchomieniem linii poleceń. Pakiety aplikacji są pobierane i wdrażane w katalogu współdzielonym, a nie w katalogu roboczym Task. Dlatego jeśli odwołany pakiet aplikacji jest już na węźle Compute i jest aktualny, nie jest ponownie pobierany; używana jest istniejąca kopia na węźle obliczeniowym. Jeśli odwołany pakiet aplikacji nie może zostać zainstalowany, na przykład dlatego, że pakiet został usunięty lub pobranie się nie powiodło, zadanie nie może zostać załatwione.

applicationPackageReferences?: BatchApplicationPackageReference[]

Wartość właściwości

commandLine

Linia poleceń zadania Menedżera Zadań. Wiersz polecenia nie jest uruchamiany w powłoce i dlatego nie może korzystać z funkcji powłoki, takich jak rozszerzenie zmiennej środowiskowej. Jeśli chcesz skorzystać z takich funkcji, powinieneś wywołać powłokę w wierszu poleceń, na przykład używając "cmd /c MyCommand" w Windows lub "/bin/sh -c MyCommand" w Linuksie. Jeśli wiersz polecenia odwołuje się do ścieżek plików, powinien użyć ścieżki względnej (względem katalogu roboczego zadania) lub użyć zmiennej środowiskowej udostępnionej w usłudze Batch (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables).

commandLine: string

Wartość właściwości

string

constraints

Ograniczenia dotyczące zadania Menedżera Zadań.

constraints?: BatchTaskConstraints

Wartość właściwości

containerSettings

Ustawienia kontenera, pod którym działa Task Manager Task Manager. Jeśli pula uruchamiająca to zadanie ma ustawioną containerConfiguration, to również musi być ustawiona. Jeśli pula, która wykona to zadanie, nie ma ustawionej containerConfiguration, nie może być ustawiona. Gdy to zostanie określone, wszystkie katalogi rekurencyjnie poniżej AZ_BATCH_NODE_ROOT_DIR (korzeń katalogów Azure Batch na węźle) są mapowane do kontenera, wszystkie zmienne środowiskowe Task są mapowane do kontenera, a wiersz poleceń Task jest wykonywany w kontenerze. Pliki wytworzone w kontenerze poza AZ_BATCH_NODE_ROOT_DIR mogą nie być odzwierciedlone na dysku hosta, co oznacza, że API plików wsadowych nie będą miały dostępu do tych plików.

containerSettings?: BatchTaskContainerSettings

Wartość właściwości

displayName

Nazwa wyświetlana zadania Menedżera Zadań. Nie musi być unikalny i może zawierać dowolne znaki Unicode do maksymalnej długości 1024.

displayName?: string

Wartość właściwości

string

environmentSettings

Lista ustawień zmiennych środowiskowych dla zadania Menedżera Zadań.

environmentSettings?: EnvironmentSetting[]

Wartość właściwości

id

Ciąg znaków, który jednoznacznie identyfikuje zadanie Menedżera Zadań w ramach zadania. ID może zawierać dowolną kombinację znaków alfanumerycznych, w tym łączników i podkreśleń, i nie może zawierać więcej niż 64 znaki.

id: string

Wartość właściwości

string

killJobOnCompletion

Czy ukończenie zadania Kierownika Zadań oznacza ukończenie całego Zadania. Jeśli to prawda, po zakończeniu zadania Menedżera Zadań usługa Batch oznacza zadanie jako ukończone. Jeśli w tym czasie nadal działają jakieś zadania (poza Job Release), są one zakończane. Jeśli nieprawda, zakończenie zadania Menedżera Zadań nie wpływa na status Zadania. W takim przypadku powinieneś użyć atrybutu onAllTasksComplete do zakończenia zadania lub poprosić klienta lub użytkownika, by zakończył zadanie wyraźnie. Przykładem jest sytuacja, gdy Menedżer Zadań tworzy zestaw Zadań, ale nie odgrywa dalszej roli w ich wykonaniu. Wartość domyślna to true. Jeśli używasz atrybutów onAllTasksComplete i onTaskFailure do kontrolowania czasu życia Zadania, a Menedżera Zadań używasz tylko do tworzenia Zadań dla zadania (nie do monitorowania postępów), to ważne jest, aby ustawić killJobOnCompletion na false.

killJobOnCompletion?: boolean

Wartość właściwości

boolean

outputFiles

Lista plików, które usługa wsadowa zagra z węzła obliczeniowego po uruchomieniu linii poleceń. W przypadku zadań wieloinstancjowych pliki będą przesyłane wyłącznie z węzła obliczeniowego, na którym wykonywane jest główne zadanie.

outputFiles?: OutputFile[]

Wartość właściwości

requiredSlots

Liczba slotów harmonogramowych wymaganych do wykonania zadania. Wartością domyślną jest 1. Zadanie może być zaplanowane do uruchomienia na węźle obliczeniowym tylko wtedy, gdy węzeł ma wystarczająco dużo wolnych slotów do planowania. Dla zadań wieloinstancjowych ta właściwość nie jest obsługiwana i nie może być określana.

requiredSlots?: number

Wartość właściwości

number

resourceFiles

Lista plików, które usługa Batch pobierze do węzła obliczeniowego przed uruchomieniem wiersza polecenia. Pliki wymienione w ramach tego elementu znajdują się w katalogu roboczym zadania. Istnieje maksymalny rozmiar listy plików zasobów. Po przekroczeniu maksymalnego rozmiaru żądanie zakończy się niepowodzeniem, a kod błędu odpowiedzi to RequestEntityTooLarge. W takim przypadku należy zmniejszyć rozmiar kolekcji plików ResourceFiles. Można to osiągnąć przy użyciu plików .zip, pakietów aplikacji lub kontenerów platformy Docker.

resourceFiles?: ResourceFile[]

Wartość właściwości

runExclusive

Czy zadanie Job Manager wymaga wyłącznego użycia węzła obliczeniowego, w którym działa. Jeśli to prawda, żadne inne zadania nie będą działać na tym samym węźle tak długo, jak działa menedżer zadań. Jeśli to nieprawda, inne zadania mogą działać jednocześnie z Menedżerem zadań na węźle obliczeniowym. Zadanie Menedżera Zadań normalnie liczy się do limitu współbieżnych zadań węzła obliczeniowego, więc jest to istotne tylko wtedy, gdy węzeł obliczeniowy pozwala na wiele równoczesnych zadań. Wartość domyślna to true.

runExclusive?: boolean

Wartość właściwości

boolean

userIdentity

Tożsamość użytkownika, pod którą działa zadanie Menedżera Zadań. Jeśli zostanie pominięte, Zadanie działa jako użytkownik nieadministracyjny, unikalny dla Zadania.

userIdentity?: UserIdentity

Wartość właściwości