Azure Batch-feladat- és feladathibák

Az Azure Batch-feladatok és feladatok hozzáadása, ütemezése vagy futtatása során különböző hibák fordulhatnak elő. Egyszerűen észlelheti a feladatok és tevékenységek hozzáadásakor előforduló hibákat. Az API, a parancssor vagy a felhasználói felület általában azonnal visszaadja a hibákat. Ez a cikk bemutatja, hogyan ellenőrizheti és kezelheti a feladatok és tevékenységek elküldése után előforduló hibákat.

Sikertelen feladatok

A feladat egy vagy több feladatból álló csoport, amely a futtatandó parancssorokat adja meg. Feladat hozzáadásakor a következő választható paramétereket adhatja meg. Ezek a paraméterek befolyásolják, hogy a feladat hogyan hiúsulhat meg.

  • JobConstraints. Az maxWallClockTime tulajdonság használatával megadhatja, hogy egy feladat mennyi ideig lehet aktív vagy fut, a maximális időtartamot beállítva. Ha a feladat meghaladja a maxWallClockTime értéket, a feladat befejeződik, és a terminateReason tulajdonság MaxWallClockTimeExpiry értékre lesz állítva a JobExecutionInformation-ben.

  • JobPreparationTask. Igény szerint megadhat egy feladat-előkészítési feladatot, amelyet minden olyan számítási csomóponton futtatni szeretne, amely feladatfeladat futtatására van ütemezve. A csomópont a munka feladatsorának első indítása előtt futtatja a felkészülési feladatot. Ha a feladat-előkészítési feladat meghiúsul, a tevékenység nem fut, és a feladat nem fejeződik be.

  • JobReleaseTask. Igény szerint megadhatja a feladat-kiadási feladatot a feladat-előkészítési feladatokat tartalmazó feladatokhoz. Egy feladat leállásakor a feladat-kiadási tevékenység minden olyan készletcsomóponton fut, amely feladat-előkészítési feladatot futtatott. Ha egy feladatkiadási feladat meghiúsul, a feladat továbbra is állapotba completed kerül.

Az Azure Portalon ezeket a paramétereket a Feladatkezelőben, az előkészítési és kiadási feladatokban, valamint a Batch Add feladat képernyő Speciális szakaszaiban állíthatja be.

Feladat tulajdonságai

Hibákért tekintse meg a JobExecutionInformation alábbi feladattulajdonságait:

  • A terminateReason tulajdonság azt jelzi MaxWallClockTimeExpiry , hogy a feladat túllépte-e a maxWallClockTime feladatkorlátozásokban megadott értéket, ezért a feladat leállt. Ez a tulajdonság akkor is beállítható taskFailed, ha a munka onTaskFailure attribútuma performExitOptionsJobAction értékre van állítva, és a feladat olyan kilépési feltétel alapján meghiúsul, amely jobAction értékű terminatejob-t határoz meg.

  • A JobSchedulingError tulajdonság akkor van beállítva, ha ütemezési hiba történt.

Feladat-előkészítési feladatok

A feladat-előkészítési feladat egy példánya minden számítási csomóponton fut, amikor a csomópont először futtat egy feladatot a feladathoz. A feladat-előkészítési feladat feladatsablonként is felfogható, több példány futtatásával, akár a készlet csomópontjainak számával. Ellenőrizze a feladat-előkészítési feladatpéldányokat annak megállapításához, hogy voltak-e hibák.

A Feladat – Előkészítési és kiadási feladat állapota API-val listázhatja egy adott feladat összes feladat-előkészítési és kiadási tevékenységének végrehajtási állapotát. Más feladatokhoz hasonlóan a JobPreparationTaskExecutionInformation is elérhető olyan tulajdonságokkal, mint failureInfoaz , exitCodeés result.

Feladat-előkészítési tevékenység futtatásakor a feladat-előkészítési tevékenységet kiváltó tevékenység a következő tevékenységállapotba: . Ha a feladat-előkészítési feladat meghiúsul, az eseményindító tevékenység visszaáll az active állapotra, és nem fut.

Ha egy feladat-előkészítési feladat meghiúsul, az eseményindító feladat nem fut. A feladat nem fejeződött be, és elakadt. Ha nincsenek más ütemezhető feladatokkal rendelkező feladatok, előfordulhat, hogy a készlet nem lesz használva.

Feladatkiadási feladatok

A feladat-leállítási művelet egy példánya akkor fut, amikor a feladat éppen lezáródik minden olyan csomóponton, amely feladat-előkészítési feladatot végzett. Ellenőrizze a feladat kiadási feladatpéldányait annak megállapításához, hogy voltak-e hibák.

A Feladat – Előkészítési és kiadási feladat állapota API-val listázhatja egy adott feladat összes feladat-előkészítési és kiadási tevékenységének végrehajtási állapotát. Ahogy a többi feladatnál is, a JobReleaseTaskExecutionInformation elérhető olyan tulajdonságokkal, mint failureInfo, exitCode és result.

Ha egy vagy több feladatkiadási feladat meghiúsul, a feladat továbbra is leáll, és egy állapotba completed kerül.

Feladathibák

A feladatfeladatok a következő okokból meghiúsulhatnak:

  • A feladat parancssora meghiúsul, és egy nemzero kilépési kóddal tér vissza.
  • A feladathoz megadott egy vagy több resourceFiles nem tölthető le.
  • Egy vagy több, a feladathoz megadott outputFiles, nem töltődik fel.
  • A tevékenység eltelt ideje meghaladja a maxWallClockTime TaskConstraintsben megadott tulajdonságot.

Minden esetben ellenőrizze a következő tulajdonságokat a hibákra és a hibákról szóló információkra vonatkozóan.

  • A TaskExecutionInformation tulajdonság több tulajdonsággal rendelkezik, amelyek információt nyújtanak egy hibáról. A taskExecutionResult jelzi, hogy a tevékenység valamilyen okból meghiúsult-e, és exitCodefailureInfo további információt nyújt a hibáról.

  • A tevékenység mindig a completedTaskState-be kerül, függetlenül attól, hogy sikeres volt-e vagy sikertelen volt.

Fontolja meg a feladathibáknak a feladatra és a tevékenységfüggőségekre gyakorolt hatását. Az ExitCondition-eket megadhatja a függőségek és a feladat műveleteinek konfigurálásához.

  • A DependencyAction szabályozza, hogy a sikertelen tevékenységtől függő tevékenységeket tiltsa-e le vagy futtassa.
  • A JobAction azt szabályozza, hogy a feladat sikertelen végrehajtása miatt az állás le legyen-e tiltva, megszakítva, vagy marad-e változatlan.

Tevékenység parancssorai

A feladat parancssorai nem futnak rendszerhéj alatt a számítási csomópontokon, így natív módon nem használhatják a rendszerhéjfunkciókat, például a környezeti változók bővítését. Az ilyen funkciók kihasználásához a parancssorban meg kell hívnia a parancshéjat. További információ: A környezeti változók parancssori bővítése.

A feladat parancssori kimenete a stderr.txt és stdout.txt fájlokba ír. Előfordulhat, hogy az alkalmazás alkalmazásspecifikus naplófájlokra is ír. Győződjön meg arról, hogy átfogó hibaellenőrzést hajt végre az alkalmazás számára, hogy azonnal észlelje és diagnosztizálja a problémákat.

Tevékenységnaplók

Ha a tevékenységet futtató készletcsomópont továbbra is létezik, lekérheti és megtekintheti a tevékenység naplófájljait. Számos API lehetővé teszi a feladatfájlok felsorolását és lekérését, például a Fájl – Get From Task parancsot. Egy feladat vagy csomópont naplófájljait az Azure Portalon is listázhatja és megtekintheti.

  1. A csomópont Áttekintés lapjának tetején válassza a Kötegnaplók feltöltése lehetőséget.

    Képernyőkép egy csomópont áttekintési oldaláról, amelyen a Batch-naplók feltöltése ki van emelve.

  2. A Batch-naplók feltöltése lapon válassza a Tároló kiválasztása lehetőséget, válassza ki a feltöltendő Azure Storage-tárolót, majd válassza a Feltöltés indítása lehetőséget.

    Képernyőkép a kötegnaplók feltöltése oldalról.

  3. A naplókat megtekintheti, megnyithatja vagy letöltheti a tárolóoldalról.

    Képernyőkép egy tároló tevékenységnaplóiról.

Kimeneti fájlok

Mivel a Batch-készletek és a készletcsomópontok gyakran átmenetiek, és a csomópontokat folyamatosan adják hozzá és törlik, érdemes a feladat futását követően elmenteni a naplófájlokat. A feladatkimeneti fájlok kényelmes módot kínálnak a naplófájlok Azure Storage-ba történő mentésére. További információ: Feladatadatok megőrzése az Azure Storage-ban a Batch szolgáltatás API-val.

Minden fájlfeltöltéskor a Batch két naplófájlt ír a számítási csomópontra, fileuploadout.txt és fileuploaderr.txt. Ezeket a naplófájlokat megvizsgálva többet is megtudhat egy adott hibáról. Ha a fájlfeltöltést nem kísérelték meg, például azért, mert maga a feladat nem futtatható, ezek a naplófájlok nem léteznek.

Következő lépések