Dokumen ini menjelaskan cara membuat dan menjalankan tugas yang tidak dijadwalkan hingga tugas tertentu berhasil atau gagal. Untuk mempelajari lebih lanjut status tugas, lihat Ringkasan pembuatan dan eksekusi tugas.
Jika Anda memiliki workload dengan persyaratan resource yang bervariasi, pertimbangkan untuk menggunakan tugas dependen untuk membuat rangkaian tugas otomatis yang masing-masing menggunakan VM terpisah. Misalnya, pisahkan jenis VM yang digunakan untuk operasi dengan permintaan rendah (seperti penyiapan data) dan operasi yang intensif komputasi (seperti pemrosesan data). Dengan menggunakan tugas dependen untuk membantu mengoptimalkan konsumsi resource, Anda dapat mengurangi biaya dan penggunaan kuota.
Sebelum memulai
- Jika belum pernah menggunakan Batch, baca Mulai menggunakan Batch dan aktifkan Batch dengan menyelesaikan prasyarat untuk project dan pengguna.
-
Untuk mendapatkan izin yang Anda perlukan untuk membuat tugas, minta administrator Anda untuk memberi Anda peran IAM berikut:
-
Batch Job Editor (
roles/batch.jobsEditor
) di project -
Pengguna Akun Layanan (
roles/iam.serviceAccountUser
) di akun layanan tugas, yang secara default adalah akun layanan Compute Engine default
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
-
Batch Job Editor (
Pembatasan
Tugas dependen memiliki batasan berikut:
Tugas dependen dapat memiliki hingga empat dependensi. Setiap dependensi harus berisi nama tugas unik dan salah satu status wajib berikut:
SUCCEEDED
: berhasilFAILED
: gagalFINISHED
: berhasil atau gagal
Saat Anda membuat tugas dependen, semua tugas dependensinya harus ada.
Tugas dependen tidak dapat memasuki status terjadwal (
SCHEDULED
) hingga setiap tugas dependensi memasuki status yang diperlukan. Jika tugas dependensi tidak dapat memasuki status yang diperlukan, tugas dependen akan langsung gagal tanpa dijadwalkan.Seperti semua tugas, tugas dependen tidak dapat memasuki status terjadwal (
SCHEDULED
) jika tugas melebihi waktu tunggu maksimum dalam antrean. Batch menerapkan batas ini untuk mencegah tugas Anda menjadi tidak valid. Oleh karena itu, jika Anda memperkirakan waktu yang tersisa yang diperlukan untuk menyelesaikan tugas dependensi mungkin melebihi batas ini, pertimbangkan untuk melakukan salah satu atau beberapa hal berikut:- Jika Anda belum membuat tugas dependensi, coba kurangi perkiraan waktu proses tugas dependensi. Misalnya, Anda dapat meningkatkan paralelisme beban kerja atau membatasi waktu proses tugas dan runnable yang tidak perlu berhasil.
- Tunggu hingga waktu berjalan yang diharapkan dari tugas dependensi lebih rendah dari batas sebelum membuat tugas dependen.
Membuat tugas dependen
Anda dapat membuat tugas yang bersifat dependen menggunakan metode berikut:
- Untuk Google Cloud CLI, gunakan perintah
gcloud alpha batch jobs submit
. - Untuk Batch API, gunakan metode v1alpha
jobs.create
.
Untuk menentukan bahwa tugas bersifat dependen, sertakan
kolom dependencies[].items
,
yang mendukung satu atau beberapa dependensi yang ditentukan sebagai key-value pair, dalam
isi utama di file JSON:
"dependencies": [
{
"items": {
"DEPENDENCY_JOB_NAME": "REQUIRED_STATE"
}
}
]
Ganti kode berikut:
DEPENDENCY_JOB_NAME
: nama tugas dependensi, yang harus mencapai status yang diperlukan sebelum tugas dependen ini diizinkan untuk dijadwalkan.REQUIRED_STATE
: status yang diperlukan untuk tugas dependensi yang sesuai, yang harus berupaSUCCEEDED
,FAILED
, atauFINISHED
.
Misalnya, tugas dependen dengan tiga dependensi dapat memiliki file konfigurasi JSON yang mirip dengan berikut ini:
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello World! This is task $BATCH_TASK_INDEX."
}
}
]
},
"taskCount": 3
}
],
"dependencies": [
{
"items": {
"DEPENDENCY_JOB_NAME_1": "REQUIRED_STATE_1",
"DEPENDENCY_JOB_NAME_2": "REQUIRED_STATE_2",
"DEPENDENCY_JOB_NAME_3": "REQUIRED_STATE_3"
}
}
]
}
Langkah berikutnya
- Jika Anda mengalami masalah saat membuat atau menjalankan tugas, lihat Pemecahan masalah.
- Pelajari cara melihat tugas dan pekerjaan.
- Pelajari lebih lanjut opsi pembuatan tugas.