Dokumen ini menjelaskan cara menentukan resource VM untuk tugas Batch dengan menentukan template instance VM Compute Engine saat Anda membuat tugas.
Jenis resource VM tempat tugas berjalan secara otomatis ditentukan oleh Batch, kecuali jika Anda menentukannya menggunakan salah satu metode berikut:
- Tentukan resource VM tugas secara langsung menggunakan kolom
instances[].policy
. Metode ini ditunjukkan di sebagian besar dokumentasi Batch. Tentukan resource VM tugas melalui template menggunakan kolom
instances[].instanceTemplate
. Ini adalah metode yang dijelaskan dalam dokumen ini.Penggunaan template diperlukan untuk menentukan opsi VM yang tidak menyediakan kolom tugas untuk Batch. Menggunakan template juga dapat memudahkan saat Anda ingin menentukan resource VM yang sama untuk beberapa tugas.
Sebelum memulai
- Jika belum pernah menggunakan Batch, baca Mulai menggunakan Batch dan aktifkan Batch dengan menyelesaikan prasyarat untuk project dan pengguna.
- Buat template instance atau identifikasi template instance yang ada.
-
Untuk mendapatkan izin yang diperlukan untuk membuat tugas, minta administrator 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 -
Buat tugas dari template instance VM Compute Engine:
Compute Viewer (
roles/compute.viewer
) di template instance VM
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 (
Membuat tugas menggunakan template instance VM Compute Engine
Bagian ini memberikan contoh cara membuat tugas skrip dasar dari template instance VM yang ada. Anda dapat membuat tugas dari template instance VM menggunakan gcloud CLI, Batch API, Go, Java, Node.js, Python, atau C++.
gcloud
Untuk membuat tugas dari template instance VM menggunakan gcloud CLI, gunakan perintah gcloud batch jobs submit
dan tentukan template instance VM dalam file konfigurasi JSON tugas.
Misalnya, untuk membuat tugas skrip dasar dari template instance VM:
Buat file JSON di direktori saat ini bernama
hello-world-instance-template.json
dengan konten berikut:{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks." } } ], "computeResource": { "cpuMilli": 2000, "memoryMib": 16 }, "maxRetryCount": 2, "maxRunDuration": "3600s" }, "taskCount": 4, "parallelism": 2 } ], "allocationPolicy": { "instances": [ { "installGpuDrivers": INSTALL_GPU_DRIVERS, "instanceTemplate": "INSTANCE_TEMPLATE_NAME" } ] }, "labels": { "department": "finance", "env": "testing" }, "logsPolicy": { "destination": "CLOUD_LOGGING" } }
Ganti kode berikut:
INSTALL_GPU_DRIVERS
: Opsional. Jika ditetapkan ketrue
, Batch akan mengambil driver yang diperlukan untuk jenis GPU yang Anda tentukan dalam template instance VM Compute Engine, dan Batch akan menginstalnya untuk Anda. Untuk mengetahui informasi selengkapnya, lihat cara membuat tugas yang menggunakan GPU.INSTANCE_TEMPLATE_NAME
: nama template instance VM Compute Engine yang ada. Pelajari cara create dan mencantumkan template instance.
Jalankan perintah berikut:
gcloud batch jobs submit example-template-job \ --location us-central1 \ --config hello-world-instance-template.json
API
Untuk membuat tugas dasar menggunakan Batch API, gunakan
metode jobs.create
dan tentukan template instance VM di kolom allocationPolicy
.
Misalnya, untuk membuat tugas skrip dasar dari template instance VM, gunakan permintaan berikut:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/jobs?job_id=example-script-job
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello world! This is task ${BATCH_TASK_INDEX}. This job has a total of ${BATCH_TASK_COUNT} tasks."
}
}
],
"computeResource": {
"cpuMilli": 2000,
"memoryMib": 16
},
"maxRetryCount": 2,
"maxRunDuration": "3600s"
},
"taskCount": 4,
"parallelism": 2
}
],
"allocationPolicy": {
"instances": [
{
"installGpuDrivers": INSTALL_GPU_DRIVERS,
"instanceTemplate": "INSTANCE_TEMPLATE_NAME"
}
]
},
"labels": {
"department": "finance",
"env": "testing"
},
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
Ganti kode berikut:
PROJECT_ID
: Project ID project Anda.INSTALL_GPU_DRIVERS
: Opsional. Jika disetel ketrue
, Batch akan mengambil driver yang diperlukan untuk jenis GPU yang Anda tentukan dalam template instance VM Compute Engine, dan Batch akan menginstalnya untuk Anda. Untuk mengetahui informasi selengkapnya, lihat cara membuat tugas yang menggunakan GPU.INSTANCE_TEMPLATE_NAME
: nama template instance VM Compute Engine yang ada. Pelajari cara membuat dan mencantumkan template instance.
Go
Go
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Go API.
Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Java
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Java API.
Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Node.js
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Node.js API.
Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Python
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch Python API.
Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
C++
C++
Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi Batch C++ API.
Untuk melakukan autentikasi ke Batch, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, baca Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Langkah selanjutnya
- Jika Anda mengalami masalah saat membuat atau menjalankan tugas, lihat Pemecahan masalah.
- Lihat tugas dan pekerjaan.
- Pelajari opsi pembuatan tugas lainnya.