Udostępnij za pośrednictwem


Azure Batch błędy zadań i zadań

Różne błędy mogą wystąpić podczas dodawania, planowania lub uruchamiania Azure Batch zadań i zadań. Wykrywanie błędów występujących podczas dodawania zadań i zadań jest proste. Interfejs API, wiersz polecenia lub interfejs użytkownika zwykle zwraca wszelkie błędy natychmiast. W tym artykule opisano sposób sprawdzania i obsługi błędów występujących po przesłaniu zadań i zadań.

Niepowodzenia zadań

Zadanie to grupa co najmniej jednego zadania, które określają wiersze polecenia do uruchomienia. Podczas dodawania zadania można określić następujące parametry opcjonalne. Te parametry wpływają na sposób, w jaki zadanie może zakończyć się niepowodzeniem.

  • Ograniczenia zadań. Opcjonalnie możesz użyć maxWallClockTime właściwości , aby ustawić maksymalny czas, przez który zadanie może być aktywne lub uruchomione. Jeśli zadanie przekroczy maxWallClockTimewartość , zadanie zostanie zakończone z właściwością ustawioną terminateReason na MaxWallClockTimeExpiry w poleceniu JobExecutionInformation.

  • JobPreparationTask. Opcjonalnie można określić zadanie podrzędne przygotowania zadania do uruchomienia w każdym węźle obliczeniowym zaplanowanym do uruchomienia zadania podrzędnego. Węzeł uruchamia zadanie podrzędne przygotowania zadania przed pierwszym uruchomieniem zadania podrzędnego. Jeśli zadanie przygotowania zadania zakończy się niepowodzeniem, zadanie nie zostanie uruchomione, a zadanie nie zostanie ukończone.

  • JobReleaseTask. Opcjonalnie można określić zadanie zwolnienia zadania dla zadań, które mają zadanie podrzędne przygotowania zadania. Po zakończeniu zadania zadanie zwolnienia zadania jest uruchamiane w każdym węźle puli, w ramach którego uruchomiono zadanie przygotowania zadania. Jeśli zadanie zwolnienia zadania zakończy się niepowodzeniem completed , zadanie nadal przechodzi do stanu.

W Azure Portal można ustawić te parametry w sekcji Menedżer zadań, zadania przygotowania i wydania oraz sekcje Zaawansowane na ekranie Dodawanie zadania w usłudze Batch.

Właściwości zadania

Sprawdź następujące właściwości zadania w elemecie JobExecutionInformation pod kątem błędów:

  • Właściwość terminateReason wskazuje MaxWallClockTimeExpiry , czy zadanie przekroczyło maxWallClockTime określone w ograniczeniach zadania, a w związku z tym zadanie zostało zakończone. Tę właściwość można również ustawić na taskFailed , jeśli atrybut zadania onTaskFailure jest ustawiony na performExitOptionsJobAction, a zadanie kończy się niepowodzeniem z warunkiem zakończenia określającym jobActionterminatejobwartość .

  • Właściwość JobSchedulingError jest ustawiona, jeśli wystąpił błąd planowania.

Zadania podrzędne przygotowania zadania

Wystąpienie zadania podrzędnego przygotowania zadania jest uruchamiane w każdym węźle obliczeniowym przy pierwszym uruchomieniu zadania podrzędnego. Zadanie podrzędne przygotowania zadania można traktować jako szablon zadania z uruchomionym wieloma wystąpieniami do liczby węzłów w puli. Sprawdź wystąpienia zadań przygotowania zadania, aby ustalić, czy wystąpiły błędy.

Możesz użyć interfejsu API Zadania — przygotowanie listy i stan zadania wydania , aby wyświetlić listę stanu wykonywania wszystkich wystąpień zadań podrzędnych przygotowywania i wydawania zadań podrzędnych dla określonego zadania. Podobnie jak w przypadku innych zadań, funkcja JobPreparationTaskExecutionInformation jest dostępna z właściwościami, takimi jak failureInfo, exitCodei result.

Gdy zadanie podrzędne przygotowania zadania zostanie uruchomione, zadanie, które wyzwoliło zadanie podrzędne przygotowania zadania, zostanie przeniesione do wartości taskState .preparing Jeśli zadanie przygotowania zadania zakończy się niepowodzeniem, zadanie wyzwalające powróci do active stanu i nie zostanie uruchomione.

Jeśli zadanie przygotowania zadania zakończy się niepowodzeniem, zadanie wyzwalania zadania nie zostanie uruchomione. Zadanie nie zostało ukończone i zostało zablokowane. Jeśli nie ma żadnych innych zadań z zadaniami, które można zaplanować, pula może nie być używana.

Zadania zwolnienia zadania

Wystąpienie zadania zwolnienia zadania jest uruchamiane po zakończeniu zadania w każdym węźle, w ramach którego uruchomiono zadanie przygotowania zadania. Sprawdź wystąpienia zadań zwolnienia zadania, aby ustalić, czy wystąpiły błędy.

Możesz użyć interfejsu API Zadania — przygotowanie listy i stan zadania wydania , aby wyświetlić listę stanu wykonywania wszystkich wystąpień zadań podrzędnych przygotowywania i wydawania zadań podrzędnych dla określonego zadania. Podobnie jak w przypadku innych zadań, funkcja JobReleaseTaskExecutionInformation jest dostępna z właściwościami, takimi jak failureInfo, exitCodei result.

Jeśli co najmniej jedno zadanie zwolnienia zadania zakończy się niepowodzeniem completed , zadanie jest nadal przerywane i przechodzi do stanu.

Błędy zadań

Zadania podrzędne zadań mogą zakończyć się niepowodzeniem z następujących powodów:

  • Wiersz polecenia zadania kończy się niepowodzeniem i zwraca kod zakończenia bez zera.
  • Co najmniej resourceFiles jeden określony dla zadania nie jest pobierany.
  • Co najmniej outputFiles jeden określony dla zadania nie jest przekazywany.
  • Czas, który upłynął dla zadania, przekracza maxWallClockTime właściwość określoną w ograniczeniach zadań.

We wszystkich przypadkach sprawdź następujące właściwości pod kątem błędów i informacji o błędach:

  • Właściwość TaskExecutionInformation ma wiele właściwości, które zawierają informacje o błędzie. Element taskExecutionResult wskazuje, czy zadanie nie powiodło się z jakiegokolwiek powodu, i exitCodefailureInfo podaj więcej informacji o niepowodzeniu.

  • Zadanie zawsze przechodzi do completedstanu TaskState, niezależnie od tego, czy zakończyło się powodzeniem, czy niepowodzeniem.

Należy wziąć pod uwagę wpływ błędów zadań na zadanie i na wszelkie zależności zadań. Można określić exitConditions , aby skonfigurować akcje dla zależności i dla zadania.

  • DependencyAction określa, czy mają być blokowane lub uruchamiane zadania zależne od zadania, które zakończyły się niepowodzeniem.
  • Funkcja JobAction określa, czy zadanie, które zakończyło się niepowodzeniem, powoduje wyłączenie, zakończenie lub zmianę zadania.

Wiersze polecenia zadania

Wiersze polecenia zadania nie są uruchamiane w powłoce w węzłach obliczeniowych, dlatego nie mogą natywnie używać funkcji powłoki, takich jak rozszerzanie zmiennych środowiskowych. Aby korzystać z takich funkcji, należy wywołać powłokę w wierszu polecenia. Aby uzyskać więcej informacji, zobacz Rozszerzenie wiersza polecenia zmiennych środowiskowych.

Dane wyjściowe wiersza polecenia zadania są zapisywane w plikachstderr.txt i stdout.txt . Aplikacja może również zapisywać dane w plikach dziennika specyficznych dla aplikacji. Upewnij się, że zaimplementowano kompleksowe sprawdzanie błędów dla aplikacji w celu szybkiego wykrywania i diagnozowania problemów.

Dzienniki zadań

Jeśli węzeł puli, w którym uruchomiono zadanie, nadal istnieje, możesz pobrać i wyświetlić pliki dziennika zadań. Kilka interfejsów API zezwala na wyświetlanie listy i pobieranie plików zadań, takich jak Plik — Pobieranie z zadania. Możesz również wyświetlić i wyświetlić pliki dziennika dla zadania lub węzła przy użyciu Azure Portal.

  1. W górnej części strony Przegląd węzła wybierz pozycję Przekaż dzienniki wsadowe.

    Zrzut ekranu przedstawiający stronę przeglądu węzła z wyróżnioną sekcją Przekaż dzienniki wsadowe.

  2. Na stronie Przekazywanie dzienników usługi Batch wybierz pozycję Wybierz kontener magazynu, wybierz kontener usługi Azure Storage do przekazania, a następnie wybierz pozycję Rozpocznij przekazywanie.

    Zrzut ekranu przedstawiający stronę Przekazywanie dzienników wsadowych.

  3. Dzienniki można wyświetlać, otwierać lub pobierać ze strony kontenera magazynu.

    Zrzut ekranu przedstawiający dzienniki zadań w kontenerze magazynu.

Pliki wyjściowe

Ponieważ pule usługi Batch i węzły puli są często efemeryczne, a węzły są stale dodawane i usuwane, najlepiej zapisać pliki dziennika po uruchomieniu zadania. Pliki wyjściowe zadań to wygodny sposób zapisywania plików dziennika w usłudze Azure Storage. Aby uzyskać więcej informacji, zobacz Utrwalanie danych zadań w usłudze Azure Storage przy użyciu interfejsu API usługi Batch.

Podczas każdego przekazywania plików usługa Batch zapisuje dwa pliki dziennika w węźle obliczeniowym, fileuploadout.txt i fileuploaderr.txt. Możesz zbadać te pliki dziennika, aby dowiedzieć się więcej o konkretnym niepowodzeniu. Jeśli na przykład próba przekazania pliku nie została podjęta, ponieważ nie można uruchomić samego zadania, te pliki dziennika nie istnieją.

Następne kroki