Target Pub/Sub
Jika Anda memilih jenis target Pub/Sub:Tentukan nama topik tempat tugas akan memublikasikan. Ini adalah topik Pub/Sub yang telah Anda siapkan di project Anda.
Tentukan pesan yang akan dikirim ke topik. Ini dikirim sebagai parameter
data
dalam pesan Pub/Sub. Untuk contoh yang melakukan hal ini, lihat Panduan memulai.Tambahkan atribut pesan yang Anda butuhkan.
Siapkan konfigurasi tambahan menggunakan bagian
Configure optional settings
.
Cloud Scheduler akan memublikasikan pesan ke topik ini sebagai akun layanan Google API.
Target HTTP App Engine
Jika memilih jenis target App Engine HTTP, Anda harus menggunakan aplikasi App Engine dan region yang terkait dengan project saat ini. Jika Anda ingin menggunakan aplikasi App Engine lain di luar project saat ini, pilih HTTP sebagai target, bukan HTTP App Engine. Aturan firewall target harus mengizinkan permintaan dari rentang IP 0.1.0.2/32.Tetapkan formulir sebagai berikut:
Dalam daftar Jenis target, pilih HTTP App Engine.
Tentukan nama layanan App Engine yang menjalankan handler untuk tugas Cloud Scheduler. Jika tidak ada, layanan
default
diasumsikan. Jika ingin menyetelnya, Anda dapat menemukan nama layanan di Google Cloud console.Secara opsional, tentukan versi. Jika tidak disetel, versi yang saat ini ditayangkan akan digunakan. Anda dapat menemukan versi yang tersedia di Google Cloud console.
Tentukan instance secara opsional. Jika tidak disetel, instance yang tersedia dapat digunakan. Anda dapat menemukan versi yang tersedia di Google Cloud console.
Tentukan URL relatif endpoint App Engine yang akan dihubungi tugas. Jika Anda menggunakan nilai default
/
, maka tugas akan menggunakanPROJECT-ID.appspot.com
denganPROJECT-ID
adalah project ID Anda saat ini.Tetapkan metode HTTP yang ingin Anda gunakan saat tugas dijalankan. Defaultnya adalah
POST
.Tambahkan header yang Anda butuhkan ke permintaan.
(Opsional) Tentukan data isi yang akan dikirim ke target. Data ini dikirim dalam isi permintaan sebagai byte jika metode HTTP
POST
atauPUT
dipilih.
Endpoint App Engine yang ditargetkan harus berada dalam project yang sama dan dapat diamankan dengan login: admin
pada elemen handlers
dalam file app.yaml
.
Target HTTP
Jika Anda memilih jenis target HTTP:Tentukan URL endpoint yang sepenuhnya memenuhi syarat yang akan dihubungi tugas.
Tentukan metode HTTP. Nilai defaultnya adalah
POST
.(Opsional) Tentukan data yang akan dikirim ke target. Data ini dikirim dalam isi permintaan sebagai byte jika metode HTTP
POST
atauPUT
dipilih.Tambahkan header yang Anda butuhkan.
Untuk membuat tugas target HTTP yang memerlukan autentikasi, lihat Menggunakan autentikasi dengan target HTTP.
Endpoint HTTP yang ditargetkan harus dapat diakses secara publik.
Anda dapat menggunakan Cloud Scheduler untuk menyiapkan unit kerja terjadwal, yang dikenal sebagai cron job, yang dikirim ke target pada jadwal berulang, yang juga disebut interval atau frekuensi tugas.
Hanya satu instance tugas yang dapat dijalankan pada satu waktu. Dalam situasi yang jarang terjadi, beberapa instance dari pekerjaan yang sama dapat diminta. Oleh karena itu, pengendali permintaan Anda harus bersifat idempotent, dan kode Anda harus memastikan bahwa tidak ada efek samping yang berbahaya jika hal ini terjadi.
Cloud Scheduler ditujukan untuk tugas berulang. Jika Anda hanya perlu menjalankan pekerjaan satu kali, pertimbangkan untuk menggunakan Cloud Tasks, yang dapat menjadwalkan tugas hingga 30 hari sebelumnya.
Sebelum memulai
Pastikan Anda telah menyiapkan lingkungan Anda untuk Cloud Scheduler.
Pilih jenis target
Cloud Scheduler dapat memanggil jenis target berikut:
Endpoint HTTP
Topik Pub/Sub
Layanan App Engine
Memanggil layanan target yang dibatasi untuk ingress internal
Cloud Scheduler dapat memanggil layanan berikut secara internal:
- Cloud Run Functions
- Cloud Run (di URL
run.app
, bukan di domain kustom)
Untuk memanggil target ini secara internal, target harus berada di Google Cloud project atau perimeter Kontrol Layanan VPC yang sama dengan job Cloud Scheduler Anda.
Untuk mempelajari lebih lanjut cara mengamankan target dengan membatasi traffic masuk, lihat Membatasi traffic masuk (untuk Cloud Run) dan Mengonfigurasi setelan jaringan (untuk Cloud Run Functions).
Buat tugas
Anda dapat membuat tugas menggunakan Google Cloud konsol atau Google Cloud CLI.
Konsol
Di konsol Google Cloud , buka halaman Cloud Scheduler.
Klik Buat tugas.
Di kolom Name, berikan nama untuk tugas yang unik untuk project.
Setelah menghapus tugas terkaitnya, Anda dapat menggunakan kembali nama tugas dalam sebuah project.
Di daftar Region, pilih region.
Jika menggunakan target HTTP App Engine, Anda harus memilih region yang sama dengan aplikasi App Engine Anda. Untuk mengetahui informasi selengkapnya, lihat Region yang didukung menurut target.
Secara opsional, berikan deskripsi singkat tentang tugas, seperti pengingat tentang apa yang dilakukan tugas tersebut.
Deskripsi ini muncul di konsol di samping nama tugas.
Tentukan frekuensi saat tugas akan dijalankan, menggunakan string konfigurasi.
Misalnya, string
0 1 * * 0
menjalankan tugas seminggu sekali pada pukul 01.00 setiap Minggu pagi. String yang Anda berikan di sini dapat berupa string apa pun yang kompatibel dengan unix-cron. Untuk informasi selengkapnya, lihat Mengonfigurasi jadwal tugas cron.Di daftar Zona waktu, pilih zona waktu yang akan digunakan untuk jadwal tugas.
Klik Lanjutkan.
Tentukan Jenis target:
Pub/Sub: Anda harus menentukan nama topik Pub/Sub yang telah disiapkan di project Anda dan yang akan menjadi tujuan publikasi tugas.
HTTP App Engine: Anda harus menggunakan aplikasi App Engine dan region yang terkait dengan project saat ini.
Klik Lanjutkan.
Secara opsional, untuk mengonfigurasi perilaku percobaan ulang, klik Konfigurasi setelan opsional. Untuk menentukan durasi, gunakan urutan bilangan bulat desimal non-negatif dengan akhiran unit berikut:
- j - jam
- m - menit
- s - detik
- ms - milidetik
- us - mikrodetik
- ns - nanodetik
Nilai negatif dan pecahan tidak diizinkan. Kolom
Max retry duration
hanya mendukung nilaih
,m
, dans
.Min backoff duration
danMax backoff duration
mendukung set lengkap.Secara opsional, untuk target HTTP dan HTTP App Engine, konfigurasi batas waktu untuk percobaan tugas. Jika pengendali permintaan tidak merespons hingga batas waktu ini, permintaan akan dibatalkan dan upaya akan ditandai sebagai gagal. Cloud Scheduler mencoba kembali tugas sesuai dengan konfigurasi percobaan ulang.
Untuk membuat dan menyimpan tugas, klik Buat.
Tugas akan berjalan pada frekuensi yang ditentukan.
gcloud
Saat membuat tugas menggunakan gcloud CLI, Anda menggunakan perintah yang berbeda untuk setiap jenis target:
HTTP
Anda dapat mengirim permintaan ke endpoint HTTP atau HTTPS apa pun. Endpoint HTTP yang ditargetkan harus dapat diakses secara publik.
gcloud scheduler jobs create http JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --uri=URI
Ganti kode berikut:
JOB
: nama tugas yang harus unik dalam project. Perlu diperhatikan bahwa Anda tidak dapat menggunakan kembali nama tugas dalam sebuah project meskipun Anda menghapus tugas terkaitnya.LOCATION
: lokasi tempat tugas Anda akan dijalankan.SCHEDULE
: frekuensi, atau interval tugas, saat tugas akan dijalankan, misalnya,every 3 hours
. String yang Anda berikan di sini dapat berupa string apa pun yang kompatibel dengan unix-cron. Meskipun kami tidak lagi merekomendasikan penggunaannya, sintaksis cron App Engine lama masih didukung untuk tugas yang ada.Untuk informasi selengkapnya, lihat Mengonfigurasi jadwal tugas cron.
URI
: URI endpoint yang sepenuhnya memenuhi syarat yang akan dihubungi oleh tugas.
Parameter lainnya dijelaskan dalam referensi command line gcloud:
Secara opsional, tentukan metode HTTP. Nilai defaultnya adalah
POST
.(Opsional) Tentukan data yang akan dikirim ke target. Data ini dikirim dalam isi permintaan sebagai byte jika metode HTTP
POST
atauPUT
dipilih.Secara opsional, tetapkan nilai percobaan ulang, yang menentukan cara percobaan ulang tugas App Engine jika terjadi kegagalan. Dalam sebagian besar kasus, nilai default sudah cukup.
Untuk membuat tugas Target HTTP yang memerlukan autentikasi, lihat Menggunakan Autentikasi dengan Target HTTP.
Contoh
gcloud scheduler jobs create http my-http-job \ --schedule "0 1 * * 0" \ --uri "http://myproject/my-url.com" \ --http-method GET
Pub/Sub
Anda harus menggunakan topik Pub/Sub yang telah disiapkan di project Anda. Cloud Scheduler akan memublikasikan pesan ke topik ini sebagai akun layanan Google API.
gcloud scheduler jobs create pubsub JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --topic=TOPIC
Ganti kode berikut:
JOB
: nama tugas yang harus unik dalam project. Perlu diperhatikan bahwa Anda tidak dapat menggunakan kembali nama tugas dalam sebuah project meskipun Anda menghapus tugas terkaitnya.LOCATION
: lokasi tempat tugas Anda akan dijalankan.SCHEDULE
: frekuensi, atau interval tugas, saat tugas akan dijalankan, misalnya,every 3 hours
. String yang Anda berikan di sini dapat berupa string apa pun yang kompatibel dengan unix-cron. Meskipun kami tidak lagi merekomendasikan penggunaannya, sintaksis cron App Engine lama masih didukung untuk tugas yang ada.Untuk informasi selengkapnya, lihat Mengonfigurasi jadwal tugas cron.
TOPIC
: nama topik tempat tugas akan memublikasikan. Gunakan flag--message-body
atau--message-body-from-file
, untuk menentukan pesan yang akan dikirim ke topik. Ini dikirim sebagai parameterdata
dalam pesan Pub/Sub. Untuk contoh yang melakukan hal ini, lihat panduan memulai.
Parameter lainnya dijelaskan dalam referensi command line gcloud.
Contoh
gcloud scheduler jobs create pubsub myjob \ --schedule "0 1 * * 0" \ --topic cron-topic \ --message-body "Hello"
HTTP App Engine
Target App Engine HTTP
hanya tersedia untuk aplikasi App Engine yang terkait dengan project saat ini. Jika Anda ingin menggunakan aplikasi App Engine lain di luar project saat ini, pilih HTTP
sebagai target, bukan App Engine HTTP
. Aturan firewall target harus
mengizinkan permintaan dari rentang IP 0.1.0.2/32.
Endpoint App Engine dapat diamankan dengan login: admin
pada elemen
handlers
dalam file app.yaml
.
gcloud scheduler jobs create app-engine \ --JOB=JOB \ --location=LOCATION \ --schedule=SCHEDULE
Ganti kode berikut:
JOB
: nama tugas yang harus unik dalam project. Perlu diperhatikan bahwa Anda tidak dapat menggunakan kembali nama tugas dalam sebuah project meskipun Anda menghapus tugas terkaitnya.LOCATION
: lokasi tempat tugas Anda akan dijalankan. Lokasi ini harus sama dengan lokasi aplikasi App Engine Anda.SCHEDULE
: frekuensi, atau interval tugas, saat tugas akan dijalankan, misalnya,every 3 hours
. String yang Anda berikan di sini dapat berupa string apa pun yang kompatibel dengan unix-cron. Meskipun kami tidak lagi merekomendasikan penggunaannya, sintaksis cron App Engine lama masih didukung untuk tugas yang ada.Untuk informasi selengkapnya, lihat Mengonfigurasi jadwal tugas cron.
Parameter lainnya dijelaskan dalam referensi command line gcloud:
Tentukan URL relatif endpoint App Engine yang akan dihubungi oleh tugas. Jika Anda menggunakan nilai default
/
, maka tugas akan menggunakanPROJECT-ID.appspot.com
denganPROJECT-ID
adalah project ID Anda saat ini.Tentukan nama layanan App Engine yang menjalankan handler untuk tugas Cloud Scheduler. Jika tidak ada, layanan
default
diasumsikan. Jika ingin menyetelnya, Anda dapat menemukan nama layanan di Google Cloud konsol.Secara opsional, tetapkan metode HTTP yang ingin Anda gunakan saat tugas dijalankan. Nilai defaultnya adalah
POST
.Secara opsional, tentukan versi. Jika tidak disetel, versi yang saat ini ditayangkan akan digunakan. Anda dapat menemukan versi yang tersedia di Google Cloud console.
Tentukan instance secara opsional. Jika tidak disetel, instance yang tersedia dapat digunakan. Anda dapat menemukan versi yang tersedia di Google Cloud console.
(Opsional) Tentukan data yang akan dikirim ke target. Data ini dikirim dalam isi permintaan sebagai byte jika metode HTTP
POST
atauPUT
dipilih.Secara opsional, tetapkan nilai percobaan ulang, yang menentukan cara percobaan ulang tugas App Engine jika terjadi kegagalan. Dalam sebagian besar kasus, nilai default sudah cukup.
Contoh
gcloud scheduler jobs create app-engine my-appengine-job \ --schedule "0 1 * * 0" \ --relative-url "/cron-handler"
Mengedit tugas
Anda dapat mengedit konfigurasi tugas.
Konsol
Di konsol Google Cloud , buka halaman Cloud Scheduler.
Pilih tugas yang akan diedit.
Klik Edit.
Ikuti langkah-langkah untuk menentukan jadwal, mengonfigurasi eksekusi, dan mengonfigurasi setelan opsional saat membuat tugas.
gcloud
Saat mengedit tugas menggunakan gcloud CLI, Anda menggunakan perintah yang berbeda untuk setiap jenis target:
HTTP
Anda dapat mengirim permintaan ke endpoint HTTP atau HTTPS apa pun. Endpoint HTTP yang ditargetkan harus dapat diakses secara publik.
gcloud scheduler jobs update http JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --uri=URI
Ganti kode berikut:
JOB
: nama tugas yang harus unik dalam project. Perlu diperhatikan bahwa Anda tidak dapat menggunakan kembali nama tugas dalam sebuah project meskipun Anda menghapus tugas terkaitnya.LOCATION
: lokasi tempat tugas Anda dijalankan. Jika Anda tidak menentukan lokasi, gcloud CLI akan menggunakan lokasi default Anda. Jika tugas yang ingin Anda edit berada di lokasi yang berbeda, Anda harus menentukan lokasi selainNAME
agar tugas Anda dapat diidentifikasi. Anda tidak dapat memperbarui lokasi pekerjaan.SCHEDULE
: frekuensi, atau interval tugas, saat tugas akan dijalankan, misalnya,every 3 hours
. String yang Anda berikan di sini dapat berupa string apa pun yang kompatibel dengan unix-cron. Meskipun kami tidak lagi merekomendasikan penggunaannya, sintaksis cron App Engine lama masih didukung untuk tugas yang ada.Untuk informasi selengkapnya, lihat Mengonfigurasi jadwal tugas cron.
URI
: URI endpoint yang sepenuhnya memenuhi syarat yang akan dihubungi oleh tugas.
Parameter lainnya dijelaskan dalam referensi command line gcloud.
Contoh
gcloud scheduler jobs update http my-http-job \ --schedule "0 1 * * 0" \ --uri "http://myproject/my-url.com" \ --http-method GET
Pub/Sub
Anda harus menggunakan topik Pub/Sub yang telah disiapkan di project Anda. Cloud Scheduler akan memublikasikan pesan ke topik ini sebagai akun layanan Google API.
gcloud scheduler jobs update pubsub JOB \ --location=LOCATION \ --schedule=SCHEDULE \ --topic=TOPIC
Ganti kode berikut:
JOB
: nama tugas yang harus unik dalam project. Perlu diperhatikan bahwa Anda tidak dapat menggunakan kembali nama tugas dalam sebuah project meskipun Anda menghapus tugas terkaitnya.LOCATION
: lokasi tempat tugas Anda dijalankan. Jika Anda tidak menentukan lokasi, gcloud CLI akan menggunakan lokasi default Anda. Jika tugas yang ingin Anda edit berada di lokasi yang berbeda, Anda harus menentukan lokasi selainNAME
agar tugas Anda dapat diidentifikasi. Anda tidak dapat memperbarui lokasi pekerjaan.SCHEDULE
: frekuensi, atau interval tugas, saat tugas akan dijalankan, misalnya,every 3 hours
. String yang Anda berikan di sini dapat berupa string apa pun yang kompatibel dengan unix-cron. Meskipun kami tidak lagi merekomendasikan penggunaannya, sintaksis cron App Engine lama masih didukung untuk tugas yang ada.Untuk informasi selengkapnya, lihat Mengonfigurasi jadwal tugas cron.
TOPIC
: nama topik tempat tugas akan memublikasikan. Gunakan flag--message-body
atau--message-body-from-file
untuk menentukan pesan yang akan dikirim ke topik. Ini dikirim sebagai parameterdata
dalam pesan Pub/Sub. Untuk contoh yang melakukan hal ini, lihat panduan memulai.
Parameter lainnya dijelaskan dalam referensi command line gcloud.
Contoh
gcloud scheduler jobs update pubsub myjob \ --schedule "0 1 * * 0" \ --topic cron-topic --message-body "Hello"
HTTP App Engine
Target App Engine HTTP
hanya tersedia untuk aplikasi App Engine yang terkait dengan project saat ini. Jika Anda ingin menggunakan aplikasi App Engine lain di luar project saat ini, pilih HTTP
sebagai target, bukan App Engine HTTP
.
Endpoint App Engine dapat diamankan dengan login: admin
pada elemen
handlers
dalam file app.yaml
.
gcloud scheduler jobs update app-engine JOB \ --location=LOCATION \ --schedule=SCHEDULE
Ganti kode berikut:
JOB
: nama tugas yang harus unik dalam project. Perlu diperhatikan bahwa Anda tidak dapat menggunakan kembali nama tugas dalam sebuah project meskipun Anda menghapus tugas terkaitnya.LOCATION
: lokasi tempat tugas Anda berjalan (ini sama dengan lokasi aplikasi App Engine target Anda). Jika Anda tidak menentukan lokasi, gcloud CLI akan menggunakan lokasi default Anda. Jika tugas yang ingin Anda edit berada di lokasi yang berbeda, Anda harus menentukan lokasi selainNAME
agar tugas Anda dapat diidentifikasi. Anda tidak dapat memperbarui lokasi pekerjaan.SCHEDULE
: frekuensi, atau interval tugas, saat tugas akan dijalankan, misalnya,every 3 hours
. String yang Anda berikan di sini dapat berupa string apa pun yang kompatibel dengan unix-cron. Meskipun kami tidak lagi merekomendasikan penggunaannya, sintaksis cron App Engine lama masih didukung untuk tugas yang ada.Untuk informasi selengkapnya, lihat Mengonfigurasi jadwal tugas cron.
Parameter lainnya dijelaskan dalam referensi command line gcloud.
Contoh
gcloud scheduler jobs update app-engine my-appengine-job \ --schedule "0 1 * * 0" \ --relative-url "/cron-handler"
Menjeda tugas
Anda dapat menjeda eksekusi tugas.
Konsol
Di konsol Google Cloud , buka Cloud Scheduler.
Pilih tugas yang akan dijeda.
Klik Jeda.
gcloud
Buka jendela terminal di mesin tempat Anda menginstal gcloud CLI.
Jalankan perintah:
gcloud scheduler jobs pause MY_JOB
Ganti
MY_JOB
dengan nama tugas yang akan dijeda.
Saat tugas dijeda, Anda juga dapat mengeditnya. Setelah mengedit tugas, tugas tersebut akan tetap dijeda hingga Anda melanjutkannya.
Melanjutkan tugas
Anda dapat melanjutkan eksekusi tugas yang dijeda.
Konsol
Di konsol Google Cloud , buka Cloud Scheduler.
Pilih tugas yang akan dilanjutkan.
Tugas harus sudah dijeda.
Klik Lanjutkan.
gcloud
Buka jendela terminal di mesin tempat Anda menginstal gcloud CLI.
Jalankan perintah:
gcloud scheduler jobs resume MY_JOB
Ganti
MY_JOB
dengan nama tugas yang akan dilanjutkan.
Menghapus tugas
Anda dapat menghapus tugas.
Konsol
Di konsol Google Cloud , buka Cloud Scheduler.
Pilih tugas yang akan dihapus.
Klik Hapus.
gcloud
Buka jendela terminal di mesin tempat Anda menginstal gcloud CLI.
Jalankan perintah:
gcloud scheduler jobs delete MY_JOB
Ganti
MY_JOB
dengan nama tugas yang akan dihapus.