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
| allow |
Czy zadanie Menedżera zadań może być uruchamiane w węźle obliczeniowym typu spot/o niskim priorytcie. Wartość domyślna to true. |
| application |
Lista pakietów aplikacji wdrożonych przez usługę Batch w węźle obliczeniowym przed uruchomieniem wiersza polecenia. Pakiety aplikacji są pobierane i wdrażane w katalogu udostępnionym, a nie w katalogu roboczym Zadanie. W związku z tym, jeśli przywoływanego pakietu aplikacji znajduje się już w węźle obliczeniowym i jest aktualny, nie jest on ponownie pobierany; używana jest istniejąca kopia w węźle obliczeniowym. Jeśli nie można zainstalować przywoływanego pakietu aplikacji, na przykład ze względu na to, że pakiet został usunięty lub pobieranie nie powiodło się, zadanie kończy się niepowodzeniem. |
| authentication |
Ustawienia tokenu uwierzytelniania, którego zadanie może używać do wykonywania operacji usługi Batch. Jeśli ta właściwość jest ustawiona, usługa Batch udostępnia zadanie z tokenem uwierzytelniania, który może służyć do uwierzytelniania operacji usługi Batch bez konieczności używania klucza dostępu do konta. Token jest dostarczany za pośrednictwem zmiennej środowiskowej AZ_BATCH_AUTHENTICATION_TOKEN. Operacje, które zadanie może wykonać przy użyciu tokenu, zależą od ustawień. Na przykład zadanie może zażądać uprawnień zadania w celu dodania innych zadań do zadania lub sprawdzenia stanu zadania lub innych zadań w ramach zadania. |
| command |
Wiersz polecenia 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, należy wywołać powłokę w wierszu polecenia, na przykład za pomocą polecenia "cmd /c MyCommand" w systemie Windows lub "/bin/sh -c MyCommand" w systemie Linux. 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, które mają zastosowanie do zadania Menedżera zadań. |
| container |
Ustawienia kontenera, w którym jest uruchamiane zadanie Menedżera zadań. Jeśli pula, która uruchomi to zadanie, ma ustawioną wartość containerConfiguration, należy również ustawić tę opcję. Jeśli pula, która uruchomi to zadanie, nie ma ustawionego konteneraKonfiguracja, nie może być ustawiona. Po określeniu tej wartości wszystkie katalogi rekursywnie poniżej AZ_BATCH_NODE_ROOT_DIR (katalogi główne katalogów usługi Azure Batch w węźle) są mapowane do kontenera, wszystkie zmienne środowiskowe zadania są mapowane do kontenera, a wiersz polecenia zadania jest wykonywany w kontenerze. Pliki utworzone w kontenerze poza AZ_BATCH_NODE_ROOT_DIR mogą nie zostać odzwierciedlone na dysku hosta, co oznacza, że interfejsy API plików usługi Batch nie będą mogły uzyskać dostępu do tych plików. |
| display |
Nazwa wyświetlana zadania Menedżera zadań. Nie musi być unikatowa i może zawierać znaki Unicode o maksymalnej długości 1024. |
| environment |
Lista ustawień zmiennych środowiskowych dla zadania Menedżera zadań. |
| id | Ciąg, który jednoznacznie identyfikuje zadanie Menedżera zadań w ramach zadania. Identyfikator może zawierać dowolną kombinację znaków alfanumerycznych, w tym łączników i podkreśleń, i nie może zawierać więcej niż 64 znaków. |
| kill |
Czy ukończenie zadania Menedżera zadań oznacza ukończenie całego zadania. Jeśli wartość true, po zakończeniu zadania Menedżera zadań usługa Batch oznaczy zadanie jako ukończone. Jeśli jakiekolwiek zadania są nadal uruchomione w tej chwili (inne niż zwolnienie zadania), te zadania zostaną zakończone. Jeśli wartość false, ukończenie zadania Menedżera zadań nie ma wpływu na stan zadania. W takim przypadku należy użyć atrybutu onAllTasksComplete, aby zakończyć zadanie, albo jawnie zakończyć zadanie przez klienta lub użytkownika. Przykładem może być utworzenie zestawu zadań przez Menedżera zadań, ale nie ma dalszej roli w ich wykonywaniu. Wartość domyślna to true. Jeśli używasz atrybutów onAllTasksComplete i onTaskFailure do kontrolowania okresu istnienia zadania, a następnie używasz zadania Menedżera zadań tylko do tworzenia zadań dla zadania (nie do monitorowania postępu), ważne jest, aby ustawić wartość killJobOnCompletion na wartość false. |
| output |
Lista plików przekazanych przez usługę Batch z węzła obliczeniowego po uruchomieniu wiersza polecenia. W przypadku zadań z wieloma wystąpieniami pliki zostaną przekazane tylko z węzła obliczeniowego, na którym jest wykonywane zadanie podstawowe. |
| required |
Liczba miejsc planowania, których wymaga uruchomienie zadania. Wartość domyślna to 1. Zadanie można zaplanować tylko w węźle obliczeniowym, jeśli węzeł ma wystarczającą ilość dostępnych wolnych miejsc planowania. W przypadku zadań z wieloma wystąpieniami ta właściwość nie jest obsługiwana i nie może być określona. |
| resource |
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. |
| run |
Czy zadanie Menedżera zadań wymaga wyłącznego użycia węzła obliczeniowego, w którym jest uruchamiany. Jeśli to prawda, żadne inne zadania nie będą uruchamiane w tym samym węźle, o ile menedżer zadań jest uruchomiony. Jeśli wartość false, inne zadania mogą być uruchamiane jednocześnie z Menedżerem zadań w węźle obliczeniowym. Zadanie Menedżera zadań jest zwykle liczone względem współbieżnego limitu zadań węzła obliczeniowego, dlatego jest to istotne tylko wtedy, gdy węzeł obliczeniowy zezwala na wiele współbieżnych zadań. Wartość domyślna to true. |
| user |
Tożsamość użytkownika, w ramach której jest uruchamiane zadanie Menedżera zadań. W przypadku pominięcia zadanie jest uruchamiane jako użytkownik niebędący administratorem unikatowym dla zadania. |
Szczegóły właściwości
allowLowPriorityNode
Czy zadanie Menedżera zadań może być uruchamiane w węźle obliczeniowym typu spot/o niskim priorytcie. Wartość domyślna to true.
allowLowPriorityNode?: boolean
Wartość właściwości
boolean
applicationPackageReferences
Lista pakietów aplikacji wdrożonych przez usługę Batch w węźle obliczeniowym przed uruchomieniem wiersza polecenia. Pakiety aplikacji są pobierane i wdrażane w katalogu udostępnionym, a nie w katalogu roboczym Zadanie. W związku z tym, jeśli przywoływanego pakietu aplikacji znajduje się już w węźle obliczeniowym i jest aktualny, nie jest on ponownie pobierany; używana jest istniejąca kopia w węźle obliczeniowym. Jeśli nie można zainstalować przywoływanego pakietu aplikacji, na przykład ze względu na to, że pakiet został usunięty lub pobieranie nie powiodło się, zadanie kończy się niepowodzeniem.
applicationPackageReferences?: BatchApplicationPackageReference[]
Wartość właściwości
authenticationTokenSettings
Ustawienia tokenu uwierzytelniania, którego zadanie może używać do wykonywania operacji usługi Batch. Jeśli ta właściwość jest ustawiona, usługa Batch udostępnia zadanie z tokenem uwierzytelniania, który może służyć do uwierzytelniania operacji usługi Batch bez konieczności używania klucza dostępu do konta. Token jest dostarczany za pośrednictwem zmiennej środowiskowej AZ_BATCH_AUTHENTICATION_TOKEN. Operacje, które zadanie może wykonać przy użyciu tokenu, zależą od ustawień. Na przykład zadanie może zażądać uprawnień zadania w celu dodania innych zadań do zadania lub sprawdzenia stanu zadania lub innych zadań w ramach zadania.
authenticationTokenSettings?: AuthenticationTokenSettings
Wartość właściwości
commandLine
Wiersz polecenia 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, należy wywołać powłokę w wierszu polecenia, na przykład za pomocą polecenia "cmd /c MyCommand" w systemie Windows lub "/bin/sh -c MyCommand" w systemie Linux. 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, które mają zastosowanie do zadania Menedżera zadań.
constraints?: BatchTaskConstraints
Wartość właściwości
containerSettings
Ustawienia kontenera, w którym jest uruchamiane zadanie Menedżera zadań. Jeśli pula, która uruchomi to zadanie, ma ustawioną wartość containerConfiguration, należy również ustawić tę opcję. Jeśli pula, która uruchomi to zadanie, nie ma ustawionego konteneraKonfiguracja, nie może być ustawiona. Po określeniu tej wartości wszystkie katalogi rekursywnie poniżej AZ_BATCH_NODE_ROOT_DIR (katalogi główne katalogów usługi Azure Batch w węźle) są mapowane do kontenera, wszystkie zmienne środowiskowe zadania są mapowane do kontenera, a wiersz polecenia zadania jest wykonywany w kontenerze. Pliki utworzone w kontenerze poza AZ_BATCH_NODE_ROOT_DIR mogą nie zostać odzwierciedlone na dysku hosta, co oznacza, że interfejsy API plików usługi Batch nie będą mogły uzyskać dostępu do tych plików.
containerSettings?: BatchTaskContainerSettings
Wartość właściwości
displayName
Nazwa wyświetlana zadania Menedżera zadań. Nie musi być unikatowa i może zawierać znaki Unicode o 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, który jednoznacznie identyfikuje zadanie Menedżera zadań w ramach zadania. Identyfikator może zawierać dowolną kombinację znaków alfanumerycznych, w tym łączników i podkreśleń, i nie może zawierać więcej niż 64 znaków.
id: string
Wartość właściwości
string
killJobOnCompletion
Czy ukończenie zadania Menedżera zadań oznacza ukończenie całego zadania. Jeśli wartość true, po zakończeniu zadania Menedżera zadań usługa Batch oznaczy zadanie jako ukończone. Jeśli jakiekolwiek zadania są nadal uruchomione w tej chwili (inne niż zwolnienie zadania), te zadania zostaną zakończone. Jeśli wartość false, ukończenie zadania Menedżera zadań nie ma wpływu na stan zadania. W takim przypadku należy użyć atrybutu onAllTasksComplete, aby zakończyć zadanie, albo jawnie zakończyć zadanie przez klienta lub użytkownika. Przykładem może być utworzenie zestawu zadań przez Menedżera zadań, ale nie ma dalszej roli w ich wykonywaniu. Wartość domyślna to true. Jeśli używasz atrybutów onAllTasksComplete i onTaskFailure do kontrolowania okresu istnienia zadania, a następnie używasz zadania Menedżera zadań tylko do tworzenia zadań dla zadania (nie do monitorowania postępu), ważne jest, aby ustawić wartość killJobOnCompletion na wartość false.
killJobOnCompletion?: boolean
Wartość właściwości
boolean
outputFiles
Lista plików przekazanych przez usługę Batch z węzła obliczeniowego po uruchomieniu wiersza polecenia. W przypadku zadań z wieloma wystąpieniami pliki zostaną przekazane tylko z węzła obliczeniowego, na którym jest wykonywane zadanie podstawowe.
outputFiles?: OutputFile[]
Wartość właściwości
requiredSlots
Liczba miejsc planowania, których wymaga uruchomienie zadania. Wartość domyślna to 1. Zadanie można zaplanować tylko w węźle obliczeniowym, jeśli węzeł ma wystarczającą ilość dostępnych wolnych miejsc planowania. W przypadku zadań z wieloma wystąpieniami ta właściwość nie jest obsługiwana i nie może być określona.
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 Menedżera zadań wymaga wyłącznego użycia węzła obliczeniowego, w którym jest uruchamiany. Jeśli to prawda, żadne inne zadania nie będą uruchamiane w tym samym węźle, o ile menedżer zadań jest uruchomiony. Jeśli wartość false, inne zadania mogą być uruchamiane jednocześnie z Menedżerem zadań w węźle obliczeniowym. Zadanie Menedżera zadań jest zwykle liczone względem współbieżnego limitu zadań węzła obliczeniowego, dlatego jest to istotne tylko wtedy, gdy węzeł obliczeniowy zezwala na wiele współbieżnych zadań. Wartość domyślna to true.
runExclusive?: boolean
Wartość właściwości
boolean
userIdentity
Tożsamość użytkownika, w ramach której jest uruchamiane zadanie Menedżera zadań. W przypadku pominięcia zadanie jest uruchamiane jako użytkownik niebędący administratorem unikatowym dla zadania.
userIdentity?: UserIdentity