BatchJobPreparationTaskOutput interface
Tugas Persiapan Pekerjaan untuk dijalankan sebelum Tugas Pekerjaan apa pun pada Simpul Komputasi tertentu. Anda dapat menggunakan Persiapan Pekerjaan untuk menyiapkan Simpul untuk menjalankan Tugas untuk Pekerjaan. Aktivitas yang umum dilakukan dalam Persiapan Pekerjaan meliputi: Mengunduh file sumber daya umum yang digunakan oleh semua Tugas dalam Pekerjaan. Tugas Persiapan Pekerjaan dapat mengunduh file sumber daya umum ini ke lokasi bersama pada Simpul. (AZ_BATCH_NODE_ROOT_DIR\shared), atau memulai layanan lokal pada Simpul sehingga semua Tugas Pekerjaan tersebut dapat berkomunikasi dengannya. Jika Tugas Persiapan Pekerjaan gagal (yaitu, menghabiskan jumlah coba lagi sebelum keluar dengan kode keluar 0), Batch tidak akan menjalankan Tugas Pekerjaan ini pada Simpul. Simpul Komputasi tetap tidak memenuhi syarat untuk menjalankan Tugas Pekerjaan ini sampai dicitrakan ulang. Simpul Komputasi tetap aktif dan dapat digunakan untuk Pekerjaan lain. Tugas Persiapan Pekerjaan dapat berjalan beberapa kali pada Simpul yang sama. Oleh karena itu, Anda harus menulis Tugas Persiapan Pekerjaan untuk menangani eksekusi ulang. Jika Simpul di-boot ulang, Tugas Persiapan Pekerjaan dijalankan lagi pada Simpul Komputasi sebelum menjadwalkan Tugas Pekerjaan lainnya, jika rerunOnNodeRebootAfterSuccess benar atau jika Tugas Persiapan Pekerjaan sebelumnya tidak selesai. Jika Simpul dicitrakan ulang, Tugas Persiapan Pekerjaan dijalankan lagi sebelum menjadwalkan Tugas Pekerjaan apa pun. Batch akan mencoba kembali Tugas ketika operasi pemulihan dipicu pada Node. Contoh operasi pemulihan termasuk (tetapi tidak terbatas pada) ketika Node yang tidak sehat di-boot ulang atau Simpul Komputasi menghilang karena kegagalan host. Percobaan ulang karena operasi pemulihan tidak bergantung pada dan tidak dihitung terhadap maxTaskRetryCount. Bahkan jika maxTaskRetryCount adalah 0, coba lagi internal karena operasi pemulihan dapat terjadi. Karena itu, semua Tugas harus idempotoen. Ini berarti Tugas perlu mentolerir terganggu dan dimulai ulang tanpa menyebabkan kerusakan atau data duplikat. Praktik terbaik untuk Tugas yang berjalan lama adalah menggunakan beberapa bentuk titik pemeriksaan.
Properti
| command |
Baris perintah Tugas Persiapan Pekerjaan. Baris perintah tidak berjalan di bawah shell, dan oleh karena itu tidak dapat memanfaatkan fitur shell seperti ekspansi variabel lingkungan. Jika Anda ingin memanfaatkan fitur tersebut, Anda harus memanggil shell di baris perintah, misalnya menggunakan "cmd /c MyCommand" di Windows atau "/bin/sh -c MyCommand" di Linux. Jika baris perintah mengacu pada jalur file, baris tersebut harus menggunakan jalur relatif (relatif terhadap direktori kerja Tugas), atau menggunakan variabel lingkungan yang disediakan Batch (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables). |
| constraints | Batasan yang berlaku untuk Tugas Persiapan Pekerjaan. |
| container |
Pengaturan untuk kontainer tempat Tugas Persiapan Pekerjaan berjalan. Ketika ini ditentukan, semua direktori secara rekursif di bawah AZ_BATCH_NODE_ROOT_DIR (akar direktori Azure Batch pada simpul) dipetakan ke dalam kontainer, semua variabel lingkungan Tugas dipetakan ke dalam kontainer, dan baris perintah Tugas dijalankan dalam kontainer. File yang diproduksi dalam kontainer di luar AZ_BATCH_NODE_ROOT_DIR mungkin tidak tercermin ke disk host, yang berarti bahwa API file Batch tidak akan dapat mengakses file tersebut. |
| environment |
Daftar pengaturan variabel lingkungan untuk Tugas Persiapan Pekerjaan. |
| id | String yang secara unik mengidentifikasi Tugas Persiapan Pekerjaan dalam Pekerjaan. ID dapat berisi kombinasi karakter alfanumerik termasuk tanda hubung dan garis bawah dan tidak boleh berisi lebih dari 64 karakter. Jika Anda tidak menentukan properti ini, layanan Batch menetapkan nilai default 'jobpreparation'. Tidak ada Tugas lain dalam Pekerjaan yang dapat memiliki ID yang sama dengan Tugas Persiapan Pekerjaan. Jika Anda mencoba mengirimkan Tugas dengan id yang sama, layanan Batch menolak permintaan dengan kode kesalahan TaskIdSameAsJobPreparationTask; jika Anda memanggil REST API secara langsung, kode status HTTP adalah 409 (Konflik). |
| rerun |
Apakah layanan Batch harus menjalankan ulang Tugas Persiapan Pekerjaan setelah Reboot Simpul Komputasi. Tugas Persiapan Pekerjaan selalu dijalankan ulang jika Simpul Komputasi dicitrakan ulang, atau jika Tugas Persiapan Pekerjaan tidak selesai (misalnya karena boot ulang terjadi saat Tugas sedang berjalan). Oleh karena itu, Anda harus selalu menulis Tugas Persiapan Pekerjaan agar idempogen dan berperilaku benar jika dijalankan beberapa kali. Nilai defaultnya adalah true. |
| resource |
Daftar file yang akan diunduh layanan Batch ke Simpul Komputasi sebelum menjalankan baris perintah. File yang tercantum di bawah elemen ini terletak di direktori kerja Tugas. Ada ukuran maksimum untuk daftar file sumber daya. Ketika ukuran maksimum terlampaui, permintaan akan gagal dan kode kesalahan respons akan menjadi RequestEntityTooLarge. Jika ini terjadi, kumpulan ResourceFiles harus dikurangi ukurannya. Ini dapat dicapai menggunakan file .zip, Paket Aplikasi, atau Kontainer Docker. |
| user |
Identitas pengguna tempat Tugas Persiapan Pekerjaan berjalan. Jika dihilangkan, Tugas berjalan sebagai pengguna non-administratif yang unik untuk Tugas pada Simpul Komputasi Windows, atau pengguna non-administratif yang unik untuk Kumpulan pada Simpul Komputasi Linux. |
| wait |
Apakah layanan Batch harus menunggu Tugas Persiapan Pekerjaan berhasil diselesaikan sebelum menjadwalkan Tugas Pekerjaan lainnya pada Simpul Komputasi. Tugas Persiapan Pekerjaan telah berhasil diselesaikan jika keluar dengan kode keluar 0. Jika true dan Tugas Persiapan Pekerjaan gagal pada Simpul, layanan Batch mencoba kembali Tugas Persiapan Pekerjaan hingga jumlah coba lagi maksimumnya (seperti yang ditentukan dalam elemen batasan). Jika Tugas masih belum berhasil diselesaikan setelah semua percobaan ulang, maka layanan Batch tidak akan menjadwalkan Tugas Pekerjaan ke Simpul. Simpul tetap aktif dan memenuhi syarat untuk menjalankan Tugas Pekerjaan lain. Jika false, layanan Batch tidak akan menunggu Tugas Persiapan Pekerjaan selesai. Dalam hal ini, Tugas Pekerjaan lainnya dapat mulai dijalankan pada Simpul Komputasi saat Tugas Persiapan Pekerjaan masih berjalan; dan bahkan jika Tugas Persiapan Pekerjaan gagal, Tugas baru akan terus dijadwalkan pada Simpul Komputasi. Nilai defaultnya adalah true. |
Detail Properti
commandLine
Baris perintah Tugas Persiapan Pekerjaan. Baris perintah tidak berjalan di bawah shell, dan oleh karena itu tidak dapat memanfaatkan fitur shell seperti ekspansi variabel lingkungan. Jika Anda ingin memanfaatkan fitur tersebut, Anda harus memanggil shell di baris perintah, misalnya menggunakan "cmd /c MyCommand" di Windows atau "/bin/sh -c MyCommand" di Linux. Jika baris perintah mengacu pada jalur file, baris tersebut harus menggunakan jalur relatif (relatif terhadap direktori kerja Tugas), atau menggunakan variabel lingkungan yang disediakan Batch (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables).
commandLine: string
Nilai Properti
string
constraints
Batasan yang berlaku untuk Tugas Persiapan Pekerjaan.
constraints?: BatchTaskConstraintsOutput
Nilai Properti
containerSettings
Pengaturan untuk kontainer tempat Tugas Persiapan Pekerjaan berjalan. Ketika ini ditentukan, semua direktori secara rekursif di bawah AZ_BATCH_NODE_ROOT_DIR (akar direktori Azure Batch pada simpul) dipetakan ke dalam kontainer, semua variabel lingkungan Tugas dipetakan ke dalam kontainer, dan baris perintah Tugas dijalankan dalam kontainer. File yang diproduksi dalam kontainer di luar AZ_BATCH_NODE_ROOT_DIR mungkin tidak tercermin ke disk host, yang berarti bahwa API file Batch tidak akan dapat mengakses file tersebut.
containerSettings?: BatchTaskContainerSettingsOutput
Nilai Properti
environmentSettings
Daftar pengaturan variabel lingkungan untuk Tugas Persiapan Pekerjaan.
environmentSettings?: EnvironmentSettingOutput[]
Nilai Properti
id
String yang secara unik mengidentifikasi Tugas Persiapan Pekerjaan dalam Pekerjaan. ID dapat berisi kombinasi karakter alfanumerik termasuk tanda hubung dan garis bawah dan tidak boleh berisi lebih dari 64 karakter. Jika Anda tidak menentukan properti ini, layanan Batch menetapkan nilai default 'jobpreparation'. Tidak ada Tugas lain dalam Pekerjaan yang dapat memiliki ID yang sama dengan Tugas Persiapan Pekerjaan. Jika Anda mencoba mengirimkan Tugas dengan id yang sama, layanan Batch menolak permintaan dengan kode kesalahan TaskIdSameAsJobPreparationTask; jika Anda memanggil REST API secara langsung, kode status HTTP adalah 409 (Konflik).
id?: string
Nilai Properti
string
rerunOnNodeRebootAfterSuccess
Apakah layanan Batch harus menjalankan ulang Tugas Persiapan Pekerjaan setelah Reboot Simpul Komputasi. Tugas Persiapan Pekerjaan selalu dijalankan ulang jika Simpul Komputasi dicitrakan ulang, atau jika Tugas Persiapan Pekerjaan tidak selesai (misalnya karena boot ulang terjadi saat Tugas sedang berjalan). Oleh karena itu, Anda harus selalu menulis Tugas Persiapan Pekerjaan agar idempogen dan berperilaku benar jika dijalankan beberapa kali. Nilai defaultnya adalah true.
rerunOnNodeRebootAfterSuccess?: boolean
Nilai Properti
boolean
resourceFiles
Daftar file yang akan diunduh layanan Batch ke Simpul Komputasi sebelum menjalankan baris perintah. File yang tercantum di bawah elemen ini terletak di direktori kerja Tugas. Ada ukuran maksimum untuk daftar file sumber daya. Ketika ukuran maksimum terlampaui, permintaan akan gagal dan kode kesalahan respons akan menjadi RequestEntityTooLarge. Jika ini terjadi, kumpulan ResourceFiles harus dikurangi ukurannya. Ini dapat dicapai menggunakan file .zip, Paket Aplikasi, atau Kontainer Docker.
resourceFiles?: ResourceFileOutput[]
Nilai Properti
userIdentity
Identitas pengguna tempat Tugas Persiapan Pekerjaan berjalan. Jika dihilangkan, Tugas berjalan sebagai pengguna non-administratif yang unik untuk Tugas pada Simpul Komputasi Windows, atau pengguna non-administratif yang unik untuk Kumpulan pada Simpul Komputasi Linux.
userIdentity?: UserIdentityOutput
Nilai Properti
waitForSuccess
Apakah layanan Batch harus menunggu Tugas Persiapan Pekerjaan berhasil diselesaikan sebelum menjadwalkan Tugas Pekerjaan lainnya pada Simpul Komputasi. Tugas Persiapan Pekerjaan telah berhasil diselesaikan jika keluar dengan kode keluar 0. Jika true dan Tugas Persiapan Pekerjaan gagal pada Simpul, layanan Batch mencoba kembali Tugas Persiapan Pekerjaan hingga jumlah coba lagi maksimumnya (seperti yang ditentukan dalam elemen batasan). Jika Tugas masih belum berhasil diselesaikan setelah semua percobaan ulang, maka layanan Batch tidak akan menjadwalkan Tugas Pekerjaan ke Simpul. Simpul tetap aktif dan memenuhi syarat untuk menjalankan Tugas Pekerjaan lain. Jika false, layanan Batch tidak akan menunggu Tugas Persiapan Pekerjaan selesai. Dalam hal ini, Tugas Pekerjaan lainnya dapat mulai dijalankan pada Simpul Komputasi saat Tugas Persiapan Pekerjaan masih berjalan; dan bahkan jika Tugas Persiapan Pekerjaan gagal, Tugas baru akan terus dijadwalkan pada Simpul Komputasi. Nilai defaultnya adalah true.
waitForSuccess?: boolean
Nilai Properti
boolean