Dokumen ini menjelaskan cara menggunakan label untuk mengatur resource Batch Anda.
Label adalah key-value pair yang diterapkan ke resource untuk mengelompokkan dan mendeskripsikannya. Batch memiliki label yang telah ditetapkan, yang otomatis diterapkan ke resource, dan label kustom, yang dapat Anda tentukan dan terapkan saat membuat tugas.
Dengan label, Anda dapat memfilter hasil daftar resource dan laporan Penagihan Cloud. Misalnya, Anda dapat menggunakan label untuk melakukan hal berikut:
Klarifikasi dan atur daftar pekerjaan proyek Anda.
Bedakan tugas yang dapat dijalankan dengan menggunakan label untuk mendeskripsikan jenis penampung atau skrip yang ditentukan.
Analisis biaya dengan memfilter laporan Penagihan Cloud untuk resource yang dibuat oleh Batch atau tugas tertentu.
Untuk informasi selengkapnya tentang label, baca juga dokumentasi Compute Engine untuk label
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 diperlukan untuk membuat tugas, minta administrator untuk memberi Anda peran IAM berikut:
-
Batch Job Editor (
roles/batch.jobsEditor
) pada project -
Service Account User (
roles/iam.serviceAccountUser
) pada akun layanan tugas, yang secara default adalah akun layanan Compute Engine default
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
-
Batch Job Editor (
Pembatasan
Selain persyaratan untuk label yang ditentukan dalam dokumentasi Compute Engine, menerapkan label ke tugas Batch dan resource-nya memiliki batasan berikut:
Batch hanya mendukung label untuk resource yang dibuat menggunakan Batch dan jenis berikut:
Pekerjaan
Runnable
Unit pemrosesan grafis (GPU) untuk tugas (jika ada)
Persistent disk (boot disk dan volume penyimpanan apa pun) untuk tugas
Instance virtual machine (VM) untuk tugas
Setelah mempertimbangkan label yang telah ditentukan sebelumnya yang diterapkan secara otomatis oleh Batch ke sebuah tugas, Anda dapat menentukan jumlah label kustom berikut:
Anda dapat menentukan maksimum 63 label khusus untuk diterapkan ke tugas dan runnable-nya.
Anda dapat menentukan maksimum 61 label khusus untuk diterapkan ke setiap GPU, persistent disk, dan VM yang dibuat untuk tugas.
Batch hanya mendukung penentuan label kustom dengan nama yang unik. Hal ini memiliki konsekuensi sebagai berikut:
Mencoba mengganti label standar akan menyebabkan error.
Menetapkan label khusus duplikat akan menggantikan label khusus yang ada.
Batch hanya mendukung penentuan label saat membuat tugas.
Label untuk tugas dan runnable tidak dapat ditambahkan, diperbarui, atau dihapus.
Meskipun Compute Engine dapat digunakan untuk menambahkan, memperbarui, atau menghapus label persistent disk dan VM yang dibuat untuk tugas, tindakan ini tidak direkomendasikan. Jangka waktu resource untuk suatu tugas tidak dapat diperkirakan secara andal, dan perubahan apa pun mungkin tidak berfungsi dengan benar dengan Batch.
Agar dapat menggunakan label untuk memfilter daftar tugas, Anda harus melihat daftar tugas menggunakan gcloud CLI atau Batch API.
Label standar
Setiap label yang telah ditentukan memiliki kunci yang dimulai dengan awalan batch-
. Secara default, Batch akan otomatis menerapkan label yang telah ditetapkan berikut:
Untuk setiap pekerjaan yang Anda buat:
batch-job-id
: Nilai label ini ditetapkan ke nama tugas.
Untuk setiap GPU, persistent disk, dan VM yang dibuat untuk tugas:
batch-job-id
: Nilai label ini ditetapkan ke nama tugas.batch-job-uid
: Nilai label ini ditetapkan ke ID unik tugas (UID).batch-node
: Nilai label ini adalah null—nilai ini hanya mengelompokkan semua GPU, persistent disk, dan VM yang dibuat untuk tugas. Misalnya, gunakan label ini saat Anda melihat laporan Penagihan Cloud untuk mengidentifikasi biaya semua GPU, persistent disk, dan VM yang dibuat oleh Batch.
Menentukan label khusus
Anda dapat memilih untuk menentukan satu atau beberapa label kustom saat membuat tugas. Anda dapat menentukan label kustom dengan kunci atau kunci baru yang sudah digunakan project Anda. Untuk menentukan label kustom, pilih satu atau beberapa metode berikut di dokumen ini berdasarkan tujuan label:
Menentukan label kustom untuk tugas dan resource-nya.
Bagian ini menjelaskan cara menerapkan satu atau beberapa label khusus ke tugas dan ke setiap GPU, persistent disk, dan VM yang dibuat untuk tugas tersebut. Setelah membuat tugas, Anda dapat menggunakan label ini untuk memfilter laporan Penagihan Cloud serta daftar tugas, persistent disk, dan VM project Anda.
Menentukan label kustom untuk tugas.
Bagian ini menjelaskan cara menerapkan satu atau beberapa label khusus ke tugas. Setelah membuat tugas, Anda dapat menggunakan label ini untuk memfilter daftar tugas project Anda.
Menentukan label kustom untuk runnable.
Bagian ini menjelaskan cara menerapkan satu atau beberapa label khusus ke satu atau beberapa yang dapat dijalankan untuk tugas. Setelah membuat tugas, Anda dapat menggunakan label ini untuk memfilter daftar tugas project Anda.
Menentukan label khusus untuk tugas dan resource-nya
Label yang ditentukan di
kolom labels
untuk kebijakan alokasi tugas
diterapkan ke tugas, serta ke setiap GPU (jika ada), persistent disk (semua
disk booting dan volume penyimpanan baru apa pun), dan VM yang dibuat untuk tugas tersebut.
Anda dapat menentukan label untuk tugas dan resource-nya ketika membuat tugas menggunakan gcloud CLI atau Batch API.
gcloud
Misalnya, untuk membuat tugas penampung dasar di us-central1
yang menentukan dua
label khusus yang berlaku untuk tugas dan resource yang dibuat untuk tugas tersebut,
ikuti langkah-langkah berikut:
Buat file JSON yang menentukan detail konfigurasi tugas dan kolom
allocationPolicy.labels
.{ "allocationPolicy": { "instances": [ { "policy": { "machineType": "e2-standard-4" } } ], "labels": { "VM_LABEL_NAME1": "VM_LABEL_VALUE1", "VM_LABEL_NAME2": "VM_LABEL_VALUE2" } }, "taskGroups": [ { "taskSpec": { "runnables": [ { "container": { "imageUri": "gcr.io/google-containers/busybox", "entrypoint": "/bin/sh", "commands": [ "-c", "echo Hello world!" ] } } ] } } ] }
Ganti kode berikut:
VM_LABEL_NAME1
: Nama label pertama yang akan diterapkan ke VM yang dibuat untuk tugas.VM_LABEL_VALUE1
: Nilai label pertama yang akan diterapkan ke VM yang dibuat untuk tugas.VM_LABEL_NAME2
: Nama label kedua yang akan diterapkan ke VM yang dibuat untuk tugas.VM_LABEL_VALUE2
: Nilai label kedua untuk diterapkan ke VM yang dibuat untuk tugas.
Buat tugas di
us-central1
menggunakan perintahgcloud batch jobs submit
.gcloud batch jobs submit example-job \ --config=JSON_CONFIGURATION_FILE \ --location=us-central1
Ganti
JSON_CONFIGURATION_FILE
dengan jalur ke file JSON dengan detail konfigurasi tugas yang Anda buat di langkah sebelumnya.
API
Misalnya, untuk membuat tugas penampung dasar di us-central1
yang menentukan dua
label khusus yang berlaku untuk tugas dan resource yang dibuat untuk tugas tersebut,
buat permintaan POST
ke
metode jobs.create
dan tentukan
kolom allocationPolicy.labels
.
POST https://batch.googleapis.com/v1/projects/example-project/locations/us-central1/jobs?job_id=example-job
{
"allocationPolicy": {
"instances": [
{
"policy": {
"machineType": "e2-standard-4"
}
}
],
"labels": {
"VM_LABEL_NAME1": "VM_LABEL_VALUE1",
"VM_LABEL_NAME2": "VM_LABEL_VALUE2"
}
},
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"container": {
"imageUri": "gcr.io/google-containers/busybox",
"entrypoint": "/bin/sh",
"commands": [
"-c",
"echo Hello world!"
]
}
}
]
}
}
]
}
Ganti kode berikut:
VM_LABEL_NAME1
: Nama label pertama yang akan diterapkan ke VM yang dibuat untuk tugas.VM_LABEL_VALUE1
: Nilai label pertama yang akan diterapkan ke VM yang dibuat untuk tugas.VM_LABEL_NAME2
: Nama label kedua yang akan diterapkan ke VM yang dibuat untuk tugas tersebut.VM_LABEL_VALUE2
: Nilai label kedua yang akan diterapkan ke VM yang dibuat untuk tugas.
Menentukan label khusus untuk tugas
Label yang ditentukan di kolom labels
untuk tugas
hanya diterapkan ke tugas.
Anda dapat menentukan label tugas saat membuat tugas menggunakan gcloud CLI atau Batch API.
gcloud
Misalnya, untuk membuat tugas container dasar di us-central1
yang menentukan
dua label khusus yang berlaku untuk tugas itu sendiri, ikuti langkah-langkah berikut:
Buat file JSON yang menentukan detail konfigurasi tugas dan kolom
labels
.{ "taskGroups": [ { "taskSpec": { "runnables": [ { "container": { "imageUri": "gcr.io/google-containers/busybox", "entrypoint": "/bin/sh", "commands": [ "-c", "echo Hello World!" ] } } ] } } ], "labels": { "JOB_LABEL_NAME1": "JOB_LABEL_VALUE1", "JOB_LABEL_NAME2": "JOB_LABEL_VALUE2" } }
Ganti kode berikut:
JOB_LABEL_NAME1
: Nama label pertama untuk melamar pekerjaan Anda.JOB_LABEL_VALUE1
: Nilai label pertama untuk diterapkan ke tugas Anda.JOB_LABEL_NAME2
: Nama label kedua untuk melamar pekerjaan Anda.JOB_LABEL_VALUE2
: Nilai label kedua untuk diterapkan ke tugas Anda.
Buat tugas di
us-central1
menggunakan perintahgcloud batch jobs submit
dengan flag berikut:gcloud batch jobs submit example-job \ --config=JSON_CONFIGURATION_FILE \ --location=us-central1
Ganti
JSON_CONFIGURATION_FILE
dengan jalur ke file JSON dengan detail konfigurasi tugas yang Anda buat di langkah sebelumnya.
API
Misalnya, untuk membuat tugas container di us-central1
yang menentukan dua
label khusus untuk diterapkan ke tugas itu sendiri, buat permintaan POST
ke
metode jobs.create
dan tentukan
kolom labels
.
POST https://batch.googleapis.com/v1/projects/example-project/locations/us-central1/jobs?job_id=example-job
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"container": {
"imageUri": "gcr.io/google-containers/busybox",
"entrypoint": "/bin/sh",
"commands": [
"-c",
"echo Hello World!"
]
}
}
]
}
}
],
"labels": {
"JOB_LABEL_NAME1": "JOB_LABEL_VALUE1",
"JOB_LABEL_NAME2": "JOB_LABEL_VALUE2"
}
}
Ganti kode berikut:
JOB_LABEL_NAME1
: Nama label pertama untuk melamar pekerjaan Anda.JOB_LABEL_VALUE1
: Nilai label pertama untuk diterapkan ke pekerjaan Anda.JOB_LABEL_NAME2
: Nama label kedua untuk melamar pekerjaan Anda.JOB_LABEL_VALUE2
: Nilai label kedua untuk diterapkan ke pekerjaan Anda.
Menentukan label khusus untuk runnable
Label yang ditentukan dalam
kolom labels
untuk runnable
hanya diterapkan ke runnable tersebut.
Anda dapat menentukan label untuk satu atau beberapa runnable saat membuat tugas menggunakan gcloud CLI atau Batch API.
gcloud
Misalnya, untuk membuat tugas di us-central1
yang menentukan dua label khusus,
satu label khusus untuk masing-masing dari dua tugas yang dapat dijalankan, ikuti langkah-langkah berikut:
Buat file JSON yang menentukan detail konfigurasi tugas dan kolom
runnables.labels
.{ "taskGroups": [ { "taskSpec": { "runnables": [ { "container": { "imageUri": "gcr.io/google-containers/busybox", "entrypoint": "/bin/sh", "commands": [ "-c", "echo Hello from task ${BATCH_TASK_INDEX}!" ] }, "labels": { "RUNNABLE1_LABEL_NAME1": "RUNNABLE1_LABEL_VALUE1" } }, { "script": { "text": "echo Hello from task ${BATCH_TASK_INDEX}!" }, "labels": { "RUNNABLE2_LABEL_NAME1": "RUNNABLE2_LABEL_VALUE1" } } ] } } ] }
Ganti kode berikut:
RUNNABLE1_LABEL_NAME1
: Nama label untuk diterapkan ke tugas pertama yang dapat dijalankan.RUNNABLE1_LABEL_VALUE1
: Nilai label untuk diterapkan ke tugas pertama yang dapat dijalankan.RUNNABLE2_LABEL_NAME1
: Nama label untuk diterapkan ke tugas kedua yang dapat dijalankan.RUNNABLE2_LABEL_VALUE1
: Nilai label untuk diterapkan ke tugas kedua yang dapat dijalankan.
Buat tugas di
us-central1
menggunakan perintahgcloud batch jobs submit
.gcloud batch jobs submit example-job \ --config=JSON_CONFIGURATION_FILE \ --location=us-central1
Ganti
JSON_CONFIGURATION_FILE
dengan jalur ke file JSON dengan detail konfigurasi tugas yang Anda buat di langkah sebelumnya.
API
Misalnya, untuk membuat tugas di us-central1
yang menentukan dua label khusus,
satu untuk masing-masing dari dua tugas yang dapat dijalankan, buat permintaan POST
ke
metode jobs.create
dan tentukan
kolom runnables.labels
.
POST https://batch.googleapis.com/v1/projects/example-project/locations/us-central1/jobs?job_id=example-job
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"container": {
"imageUri": "gcr.io/google-containers/busybox",
"entrypoint": "/bin/sh",
"commands": [
"-c",
"echo Hello from ${BATCH_TASK_INDEX}!"
]
},
"labels": {
"RUNNABLE1_LABEL_NAME1": "RUNNABLE1_LABEL_VALUE1"
}
},
{
"script": {
"text": "echo Hello from ${BATCH_TASK_INDEX}!"
},
"labels": {
"RUNNABLE2_LABEL_NAME1": "RUNNABLE2_LABEL_VALUE1"
}
}
]
}
}
]
}
Ganti kode berikut:
RUNNABLE1_LABEL_NAME1
: Nama label yang akan diterapkan ke tugas pertama yang dapat dijalankan.RUNNABLE1_LABEL_VALUE1
: Nilai label yang akan diterapkan ke tugas pertama yang dapat dijalankan.RUNNABLE2_LABEL_NAME1
: Nama label yang akan diterapkan ke tugas kedua yang dapat dijalankan.RUNNABLE2_LABEL_VALUE1
: Nilai label yang akan diterapkan ke tugas kedua yang dapat dijalankan.
Langkah selanjutnya
Gunakan label sebagai filter saat Anda melakukan hal berikut:
Pelajari cara menghapus dan mengekspor tugas.