Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berbagai kesalahan dapat terjadi saat Anda menambahkan, menjadwalkan, atau menjalankan pekerjaan dan tugas Azure Batch. Sangat mudah untuk mendeteksi kesalahan yang terjadi saat Anda menambahkan pekerjaan dan tugas. API, baris perintah, atau antarmuka pengguna biasanya segera mengembalikan kegagalan apa pun. Artikel ini membahas cara memeriksa dan menangani kesalahan yang terjadi setelah pekerjaan dan tugas dikirimkan.
Kegagalan pekerjaan
Pekerjaan adalah grup dari satu atau beberapa tugas, yang menentukan baris perintah yang akan dijalankan. Anda dapat menentukan parameter opsional berikut saat menambahkan pekerjaan. Parameter ini memengaruhi bagaimana pekerjaan dapat gagal.
JobConstraints. Anda dapat secara opsional menggunakan
maxWallClockTime
properti untuk mengatur jumlah waktu maksimum pekerjaan dapat aktif atau berjalan. Jika pekerjaan melampauimaxWallClockTime
, pekerjaan akan berakhir dengan propertiterminateReason
diatur menjadiMaxWallClockTimeExpiry
dalam JobExecutionInformation.JobPreparationTask. Anda dapat secara opsional menentukan tugas persiapan pekerjaan untuk dijalankan pada setiap simpul komputasi yang dijadwalkan untuk menjalankan tugas pekerjaan. Simpul menjalankan tugas persiapan pekerjaan sebelum pertama kali menjalankan tugas untuk pekerjaan tersebut. Jika tugas persiapan pekerjaan gagal, tugas tidak berjalan dan pekerjaan tidak selesai.
JobReleaseTask. Anda dapat secara opsional menentukan tugas rilis pekerjaan untuk pekerjaan yang memiliki tugas persiapan pekerjaan. Ketika sebuah pekerjaan dihentikan, tugas pelepasan pekerjaan dijalankan pada setiap simpul kumpulan yang sebelumnya menjalankan tugas persiapan pekerjaan. Jika tugas rilis pekerjaan gagal, pekerjaan masih berpindah ke status
completed
.
Di portal Azure, Anda dapat mengatur parameter ini di manajer Pekerjaan, tugas persiapan dan rilis dan bagian Tingkat Lanjut dari layar Tambahkan pekerjaan Batch.
Properti pekerjaan
Periksa properti pekerjaan berikut di JobExecutionInformation untuk kesalahan:
Properti
terminateReason
menunjukkanMaxWallClockTimeExpiry
apakah pekerjaan telah melebihi batasan yang ditentukan dalam pekerjaan tersebut, dan oleh karena itu pekerjaan dihentikan. Properti ini juga dapat diatur ketaskFailed
jika atribut dari pekerjaanonTaskFailure
diatur keperformExitOptionsJobAction
, serta tugas gagal dengan kondisi keluar yang menetapkanjobAction
sebagaiterminatejob
.Properti JobSchedulingError diatur jika telah terjadi kesalahan penjadwalan.
Tugas persiapan pekerjaan
Sebuah instans dari tugas persiapan pekerjaan berjalan pada setiap simpul komputasi ketika simpul tersebut pertama kali menjalankan tugas untuk pekerjaan tersebut. Anda dapat menganggap tugas persiapan pekerjaan sebagai templat tugas, dengan beberapa instans yang dijalankan, hingga sebanyak jumlah simpul dalam suatu kumpulan. Periksa tugas persiapan pekerjaan untuk melihat apakah ada kesalahan.
Anda dapat menggunakan JOB - List Preparation and Release Task Status API untuk mencantumkan status eksekusi semua instans tugas persiapan dan rilis pekerjaan untuk pekerjaan tertentu. Seperti halnya tugas lain, JobPreparationTaskExecutionInformation tersedia dengan properti seperti failureInfo
, exitCode
, dan result
.
Ketika tugas persiapan pekerjaan berjalan, tugas yang memicu tugas persiapan pekerjaan berpindah ke taskState dari preparing
. Jika tugas persiapan pekerjaan gagal, tugas pemicu kembali ke status active
dan tidak berjalan.
Jika tugas persiapan pekerjaan gagal, tugas pekerjaan yang dipicu tidak berjalan. Pekerjaan tidak selesai dan macet. Jika tidak ada pekerjaan lain dengan tugas yang dapat dijadwalkan, kumpulan mungkin tidak akan digunakan.
Tugas Rilis kerja
Instans tugas rilis pekerjaan berjalan ketika pekerjaan dihentikan pada setiap simpul yang menjalankan tugas persiapan pekerjaan. Periksa instance tugas rilis pekerjaan untuk menentukan apakah ada kesalahan.
Anda dapat menggunakan JOB - List Preparation and Release Task Status API untuk mencantumkan status eksekusi semua instans tugas persiapan dan rilis pekerjaan untuk pekerjaan tertentu. Seperti halnya tugas lain, JobReleaseTaskExecutionInformation tersedia dengan properti seperti failureInfo
, , exitCode
dan result
.
Jika satu atau beberapa tugas rilis pekerjaan gagal, pekerjaan masih dihentikan dan pindah ke status completed
.
Kegagalan tugas
Tugas pekerjaan dapat gagal karena alasan berikut:
- Baris perintah tugas gagal dan kembali dengan kode keluar bukan nol.
- Satu atau beberapa
resourceFiles
yang ditentukan untuk sebuah tugas tidak dapat diunduh. - Satu atau beberapa
outputFiles
yang ditentukan dalam tugas tidak diunggah. - Waktu yang dihabiskan untuk tugas melebihi
maxWallClockTime
properti yang ditentukan dalam TaskConstraints.
Dalam semua kasus, periksa properti-properti berikut untuk menemukan kesalahan-kesalahan dan informasi tentang kesalahan tersebut.
Properti TaskExecutionInformation memiliki beberapa properti yang menyediakan informasi tentang kesalahan. TaskExecutionResult menunjukkan apakah tugas gagal karena alasan apa pun, dan
exitCode
danfailureInfo
memberikan informasi selengkapnya tentang kegagalan tersebut.Tugas selalu berpindah ke
completed
TaskState, baik berhasil atau gagal.
Pertimbangkan dampak kegagalan tugas pada pekerjaan dan pada dependensi tugas apa pun. Anda dapat menentukan ExitConditions untuk mengonfigurasi tindakan untuk dependensi dan untuk pekerjaan tersebut.
- DependencyAction mengontrol apakah akan memblokir atau menjalankan tugas yang bergantung pada tugas yang gagal.
- JobAction mengontrol apakah tugas yang gagal menyebabkan pekerjaan dinonaktifkan, dihentikan, atau tidak berubah.
Baris perintah tugas
Baris perintah tugas tidak berjalan di bawah shell pada simpul komputasi, sehingga tidak dapat menggunakan fitur shell secara asli seperti ekspansi variabel lingkungan. Untuk memanfaatkan fitur tersebut, Anda harus memanggil shell di baris perintah. Untuk informasi selengkapnya, lihat Perluasan variabel lingkungan pada baris perintah.
Output baris perintah dari tugas ditulis ke file stderr.txt dan stdout.txt. Aplikasi Anda mungkin juga menulis ke file log khusus aplikasi. Pastikan untuk menerapkan pemeriksaan kesalahan komprehensif agar aplikasi Anda segera mendeteksi dan mendiagnosis masalah.
Log tugas
Jika simpul kumpulan yang menjalankan tugas masih ada, Anda bisa mendapatkan dan melihat file log tugas. Beberapa API memungkinkan daftar dan mendapatkan file tugas, seperti File - Dapatkan Dari Tugas. Anda juga dapat mencantumkan dan menampilkan file log untuk tugas atau simpul dengan menggunakan portal Azure.
Pada bagian atas halaman Gambaran Umum untuk simpul, pilih Unggah log batch.
Pada halaman Unggah log Batch, pilih Pilih kontainer penyimpanan, pilih kontainer Azure Storage untuk diunggah, lalu pilih Mulai unggah.
Anda dapat melihat, membuka, atau mengunduh log dari halaman kontainer penyimpanan.
Output file
Karena kumpulan Batch dan simpul kumpulan sering bersifat sementara, dengan simpul terus ditambahkan dan dihapus, yang terbaik adalah menyimpan file log saat pekerjaan berjalan. File output tugas adalah cara yang mudah untuk menyimpan file log ke Azure Storage. Untuk informasi selengkapnya, lihat Menyimpan data tugas ke Azure Storage dengan API layanan Batch.
Pada setiap unggahan file, Batch menulis dua file log ke simpul komputasi, fileuploadout.txt dan fileuploaderr.txt. Anda dapat memeriksa file log ini untuk mempelajari lebih lanjut mengenai kegagalan tertentu. Jika unggahan file tidak dicoba, misalnya karena tugas itu sendiri tidak dapat dijalankan, file log ini tidak ada.
Langkah berikutnya
- Pelajari selengkapnya tentang pekerjaan dan tugas Batch serta tugas persiapan dan rilis pekerjaan.
- Pelajari tentang kumpulan Batch dan kesalahan simpul.