Dokumen ini menjelaskan cara membuat tugas Batch yang mengirimkan notifikasi Pub/Sub. Anda dapat menggunakan Pub/Sub untuk mendapatkan notifikasi saat status tugas atau tugas berubah, atau saat tugas atau tugas memasuki status tertentu. Untuk mengetahui informasi selengkapnya, lihat Memantau tugas menggunakan notifikasi.
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 dan menjalankan tugas yang mengirimkan notifikasi, minta administrator Anda 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. -
Editor Pub/Sub (
roles/pubsub.editor
) pada topik atau project Pub/Sub.
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 (
-
Untuk memastikan akun layanan tugas memiliki izin yang diperlukan untuk memublikasikan notifikasi Pub/Sub, minta administrator Anda untuk memberikan peran IAM Pub/Sub Publisher (
roles/pubsub.publisher
) ke akun layanan tugas pada topik Pub/Sub Anda.Secara default, akun layanan tugas adalah akun layanan Compute Engine default.
- Aktifkan notifikasi status Pub/Sub untuk tugas Anda.
- Jika ingin, Anda dapat mengonfigurasi Pub/Sub untuk mengalirkan notifikasi ke BigQuery.
Membuat dan menjalankan tugas yang mengirimkan notifikasi
Anda dapat membuat tugas Batch yang mengirimkan notifikasi Pub/Sub dengan melakukan hal berikut:
Gunakan Google Cloud CLI atau REST API untuk membuat tugas yang menyertakan kolom notifications
dan satu atau beberapa objek jobNotification
di isi utama file JSON:
"notifications": [
{
"pubsubTopic": "projects/PROJECT_ID/topics/TOPIC_ID",
"message": {
ATTRIBUTES
}
},
]
Ganti kode berikut:
PROJECT_ID
: ID project project yang berisi topik Pub/Sub.TOPIC_ID
: ID topik Pub/Sub dari topik yang Anda buat saat mengaktifkan notifikasi Pub/Sub.ATTRIBUTES
: atribut yang Anda tentukan bergantung pada apakah Anda ingin menerima notifikasi tentang sebuah tugas atau semua tugas dalam tugas tersebut:Untuk notifikasi tentang semua perubahan status tugas, tentukan hal berikut:
"type": "JOB_STATE_CHANGED"
Untuk notifikasi tentang perubahan status pekerjaan tertentu, tentukan hal berikut:
"type": "JOB_STATE_CHANGED", "newJobState": "JOB_STATE"
Ganti
JOB_STATE
dengan salah satu status pekerjaan berikut:QUEUED
SCHEDULED
RUNNING
SUCCEEDED
FAILED
Untuk mengetahui informasi selengkapnya tentang status tugas, lihat Siklus proses tugas.
Untuk notifikasi tentang semua perubahan status tugas, tentukan hal berikut:
"type": "TASK_STATE_CHANGED"
Untuk notifikasi tentang perubahan status tugas tertentu, tentukan hal berikut:
"type": "TASK_STATE_CHANGED", "newTaskState": "TASK_STATE"
Ganti
TASK_STATE
dengan salah satu status tugas berikut:PENDING
ASSIGNED
RUNNING
SUCCEEDED
FAILED
Untuk mengetahui informasi selengkapnya tentang status tugas, lihat Siklus proses tugas.
Misalnya, Anda ingin menerima notifikasi tentang semua perubahan status tugas dan setiap kali tugas gagal. Untuk melakukannya, tambahkan kode berikut ke file JSON konfigurasi tugas Anda:
"notifications": [
{
"pubsubTopic": "projects/example-projecet/topics/example-topic",
"message": {
"type": "JOB_STATE_CHANGED"
}
},
{
"pubsubTopic": "projects/example-project/topics/example-topic",
"message": {
"type": "TASK_STATE_CHANGED",
"newTaskState": "FAILED"
}
}
]
Langkah selanjutnya
- Jika Anda mengalami masalah saat membuat atau menjalankan tugas, lihat Pemecahan masalah.
- Melihat tugas dan tugas.
- Pelajari opsi pembuatan lowongan lebih lanjut.