Azure Batch işi ve görev hataları
Azure Batch işleri ve görevleri eklediğinizde, zamanladığınızda veya çalıştırdığınızda çeşitli hatalar oluşabilir. İş ve görev eklediğinizde oluşan hataları algılamak kolaydır. API, komut satırı veya kullanıcı arabirimi genellikle hataları hemen döndürür. Bu makalede, işler ve görevler gönderildikten sonra oluşan hataları denetleme ve işleme işlemleri ele alınıyor.
İş hataları
İş, çalıştırılacak komut satırlarını belirten bir veya daha fazla görevden oluşan bir grupdur. bir iş eklerken aşağıdaki isteğe bağlı parametreleri belirtebilirsiniz. Bu parametreler işin nasıl başarısız olabileceğini etkiler.
JobConstraints. İsteğe bağlı olarak, bir işin etkin veya çalışır durumda olabileceği maksimum süreyi ayarlamak için özelliğini kullanabilirsiniz
maxWallClockTime
. İş değerini aşarsamaxWallClockTime
, iş JobExecutionInformation içinde olarak ayarlanmışMaxWallClockTimeExpiry
özelliğiyleterminateReason
sonlandırılır.JobPreparationTask. İsteğe bağlı olarak, bir iş görevini çalıştırmak üzere zamanlanan her işlem düğümünde çalıştırılacak bir iş hazırlama görevi belirtebilirsiniz. Düğüm, iş için bir görevi ilk kez çalıştırmadan önce iş hazırlama görevini çalıştırır. İş hazırlama görevi başarısız olursa, görev çalışmaz ve iş tamamlanmaz.
JobReleaseTask. İsteğe bağlı olarak, iş hazırlama görevi olan işler için bir iş bırakma görevi belirtebilirsiniz. Bir iş sonlandırıldığında, iş bırakma görevi bir iş hazırlama görevi çalıştıran her havuz düğümünde çalışır. bir iş bırakma görevi başarısız olursa, iş yine de bir
completed
duruma geçer.
Azure portalında bu parametreleri İş yöneticisi, hazırlık ve yayın görevleri ile Batch Add iş ekranının Gelişmiş bölümlerinde ayarlayabilirsiniz.
İş özellikleri
JobExecutionInformation içindeki aşağıdaki iş özelliklerini hatalar için denetleyin:
özelliği,
terminateReason
işin iş kısıtlamalarında belirtilen değerimaxWallClockTime
aşıp aşmadiğini ve bu nedenle işin sonlandırıldığını gösterirMaxWallClockTimeExpiry
. Bu özellik, işinonTaskFailure
özniteliği olarak ayarlanırsaperformExitOptionsJobAction
ve bir görev öğesini belirtenjobAction
terminatejob
bir çıkış koşuluyla başarısız olursa olarak da ayarlanabilirtaskFailed
.Zamanlama hatası varsa JobSchedulingError özelliği ayarlanır.
İş hazırlama görevleri
bir iş hazırlama görevinin örneği, düğüm iş için bir görevi ilk kez çalıştırdığında her işlem düğümünde çalışır. İş hazırlama görevini, bir havuzdaki düğüm sayısına kadar birden çok örneğin çalıştırıldığı bir görev şablonu olarak düşünebilirsiniz. Hata olup olmadığını belirlemek için iş hazırlama görev örneklerini denetleyin.
Belirtilen bir işin tüm iş hazırlama ve bırakma görevlerinin yürütme durumunu listelemek için İş - Liste Hazırlama ve Bırakma Görevi Durumu API'sini kullanabilirsiniz. Diğer görevlerde olduğu gibi JobPreparationTaskExecutionInformation da , exitCode
ve result
gibi failureInfo
özelliklerle kullanılabilir.
Bir iş hazırlama görevi çalıştırıldığında, iş hazırlama görevini tetikleyen görev bir taskState'ine preparing
taşınır. İş hazırlama görevi başarısız olursa, tetikleyen görev duruma geri döner active
ve çalışmaz.
Bir iş hazırlama görevi başarısız olursa, tetikleyen iş görevi çalışmaz. İş tamamlanmadı ve takıldı. Zamanlanabilir görevleri olan başka iş yoksa havuz kullanılamayabilir.
İş yayın görevleri
İş hazırlama görevi çalıştıran her düğümde iş sonlandırıldığında bir iş bırakma görevinin örneği çalıştırılır. Hata olup olmadığını belirlemek için iş bırakma görev örneklerini denetleyin.
Belirtilen bir işin tüm iş hazırlama ve bırakma görevlerinin yürütme durumunu listelemek için İş - Liste Hazırlama ve Bırakma Görevi Durumu API'sini kullanabilirsiniz. Diğer görevlerde olduğu gibi JobReleaseTaskExecutionInformation da , exitCode
ve result
gibi failureInfo
özelliklerle kullanılabilir.
Bir veya daha fazla iş bırakma görevi başarısız olursa, iş yine sonlandırılır ve bir completed
duruma geçer.
Görev hataları
İş görevleri aşağıdaki nedenlerle başarısız olabilir:
- Görev komut satırı başarısız olur ve sıfır olmayan bir çıkış koduyla döndürür.
- Bir görev için belirtilen bir veya daha fazla
resourceFiles
dosya indirilmiyor. - Bir görev için belirtilen bir veya daha fazla
outputFiles
görev karşıya yüklenemez. - Görevin geçen süresi TaskConstraints
maxWallClockTime
içinde belirtilen özelliği aşıyor.
Her durumda, hatalar ve hatalar hakkında bilgi için aşağıdaki özellikleri denetleyin:
TaskExecutionInformation özelliği, bir hata hakkında bilgi sağlayan birden çok özelliğe sahiptir. taskExecutionResult, görevin herhangi bir nedenle başarısız olup olmadığını belirtir ve
exitCode
failureInfo
hata hakkında daha fazla bilgi sağlar.Görev başarılı veya başarısız olmasına bakılmaksızın her zaman TaskState'e
completed
taşınır.
Görev hatalarının iş üzerindeki ve tüm görev bağımlılıkları üzerindeki etkisini göz önünde bulundurun. Bağımlılıklara ve işe yönelik eylemleri yapılandırmak için ExitConditions belirtebilirsiniz.
- DependencyAction , başarısız göreve bağlı görevlerin engellenip engellenmeyeceğini veya çalıştırılmayacağını denetler.
- JobAction , başarısız görevin işin devre dışı bırakılmasına, sonlandırılmasına veya değişmesine neden olup olmadığını denetler.
Görev komut satırları
Görev komut satırları işlem düğümlerinde kabuk altında çalışmaz, bu nedenle ortam değişkeni genişletme gibi kabuk özelliklerini yerel olarak kullanamazlar. Bu tür özelliklerden yararlanmak için komut satırında kabuğu çağırmanız gerekir. Daha fazla bilgi için bkz . Ortam değişkenlerinin komut satırı genişletmesi.
Görev komut satırı çıktısı stderr.txt ve stdout.txt dosyalarına yazar. Uygulamanız, uygulamaya özgü günlük dosyalarına da yazabilir. Sorunları hemen algılamak ve tanılamak için uygulamanız için kapsamlı hata denetimi uyguladığınızdan emin olun.
Görev günlükleri
Bir görevi çalıştıran havuz düğümü hala varsa, görev günlüğü dosyalarını alabilir ve görüntüleyebilirsiniz. Dosya - Görevden Al gibi çeşitli API'ler görev dosyalarını listelemeye ve almaya izin verir. Ayrıca Azure portalını kullanarak bir görev veya düğüm için günlük dosyalarını listeleyebilir ve görüntüleyebilirsiniz.
Bir düğümün Genel Bakış sayfasının üst kısmında Toplu iş günlüklerini karşıya yükle'yi seçin.
Toplu günlükleri Karşıya Yükle sayfasında Depolama kapsayıcısı seç'i seçin, karşıya yüklenecek Azure Depolama kapsayıcısını seçin ve ardından Karşıya yüklemeyi başlat'ı seçin.
Günlükleri depolama kapsayıcısı sayfasından görüntüleyebilir, açabilir veya indirebilirsiniz.
Çıkış dosyaları
Batch havuzları ve havuz düğümleri genellikle kısa ömürlü olduğundan ve düğümler sürekli eklenip silindiğinden, iş çalıştırıldığında günlük dosyalarını kaydetmek en iyisidir. Görev çıktı dosyaları, günlük dosyalarını Azure Depolama'ya kaydetmenin kullanışlı bir yoludur. Daha fazla bilgi için bkz . Batch hizmeti API'siyle görev verilerini Azure Depolama'da kalıcı hale getirmek.
Batch, her dosya yüklemesinde işlem düğümüne fileuploadout.txt ve fileuploaderr.txt olmak üzere iki günlük dosyası yazar. Belirli bir hata hakkında daha fazla bilgi edinmek için bu günlük dosyalarını inceleyebilirsiniz. Örneğin, görevin kendisi çalıştıramadığı için dosya karşıya yükleme girişiminde bulunulamıyorsa, bu günlük dosyaları mevcut değildir.
Sonraki adımlar
- Batch işleri ve görevleri ile iş hazırlama ve bırakma görevleri hakkında daha fazla bilgi edinin.
- Batch havuzu ve düğüm hataları hakkında bilgi edinin.