Tentang codelab ini
1. Pengantar
Terakhir Diperbarui: 06-05-2022
Tugas Cloud Run
Tugas Cloud Run memungkinkan Anda menjalankan tugas yang berjalan lama di Cloud Run.
Codelab ini bersifat informatif, memberi Anda pengetahuan mengenai waktu dan cara menggunakan tugas Cloud Run. Ini akan menyiapkan Anda untuk codelab Memulai tugas Cloud Run, di mana Anda akan mendapatkan pengalaman langsung menggunakan Google Cloud Console untuk mem-build container, membuat dan menjalankan tugas Cloud Run, serta mengupdate dan menjadwalkan pekerjaan.
Yang akan Anda pelajari
- Apa yang dimaksud dengan tugas Cloud Run
- Kapan tugas Cloud Run digunakan
- Alur kerja tugas Cloud Run
- Cara membuat tugas Cloud Run
- Cara menjalankan tugas Cloud Run
- Cara menjalankan tugas sesuai jadwal
- Cara melihat status eksekusi
- Cara mengelola tugas dan eksekusi tugas
- Cara mendeteksi penyelesaian pekerjaan
- Cara memperbarui pekerjaan
2. Ringkasan tugas Cloud Run
Ada dua cara untuk menjalankan kode Anda di Cloud Run. Anda dapat menjalankannya terus-menerus sebagai layanan,
atau, jika kode Anda menjalankan pekerjaan lalu berhenti, Anda dapat menggunakan tugas Cloud Run.
Meskipun layanan Cloud Run sangat cocok untuk container yang menjalankan pemrosesan permintaan HTTP tanpa batas waktu, tugas Cloud Run sangat cocok untuk container yang dijalankan hingga selesai dan tidak melayani permintaan, seperti pemrosesan data dan tugas administratif.
Kasus penggunaan lainnya untuk tugas Cloud Run meliputi:
- Menjalankan skrip untuk melakukan migrasi database atau tugas operasional lainnya.
- Pemrosesan paralel semua file dalam bucket Cloud Storage.
- Membuat dan mengirim invoice setiap bulan.
- Setiap empat jam, menyimpan hasil kueri database sebagai XML dan mengupload filenya.
Sehubungan dengan platform lain yang mendukung tugas yang berjalan lama, tugas Cloud Run dimulai dengan cepat setelah dibuat. Container sederhana dapat dimulai dalam 10 detik, bergantung pada kompleksitas container. Hal ini membuat tugas Cloud Run sangat cocok untuk situasi saat menunggu beberapa menit untuk memulai VM adalah masalah.
3. Alur kerja tugas Cloud Run
Alur kerja tugas Cloud Run terdiri dari dua langkah sederhana:
- Buat tugas. Tugas ini mengenkapsulasi semua konfigurasi yang diperlukan untuk menjalankan tugas, seperti image container.
- Jalankan tugas. Gunakan Cloud Console atau gcloud CLI dan jalankan tugas dari command line.
Tugas dapat memulai satu instance container untuk menjalankan kode Anda, atau dapat memulai banyak instance container independen yang identik secara paralel dengan menentukan jumlah tugas yang akan dijalankan. Misalnya, jika Anda membaca 1.000 gambar dari Cloud Storage untuk mengubah ukuran dan memangkasnya, memprosesnya secara berurutan akan lebih lambat daripada memproses semuanya secara bersamaan dengan banyak instance container.
4. Membuat tugas
Untuk membuat tugas, Anda dapat menggunakan Cloud Console atau gcloud CLI menggunakan perintah berikut:
gcloud beta run jobs create JOB_NAME --image IMAGE_URL OPTIONS
Ganti:
JOB_NAME
dengan nama pekerjaan yang ingin Anda buat.IMAGE_URL
dengan referensi ke gambar container.- Secara opsional, ganti
OPTIONS
dengan salah satu tanda yang tersedia. Untuk daftar lengkap tanda, jalankangcloud beta run jobs create --help
.
Contoh tanda mencakup:
--tasks
untuk jumlah tugas yang akan dijalankan.-–max retries
untuk frekuensi tugas yang gagal dicoba lagi.--parallelism
untuk jumlah maksimum tugas yang dapat berjalan secara paralel.--execute-now
untuk menjalankan tugas segera setelah tugas dibuat.--async
untuk segera keluar dari tugas setelah membuat eksekusi baru.
Anda juga dapat menggunakan fitur Cloud Run biasa untuk mengamankan tugas Cloud Run dan menghubungkannya ke lingkungan Google Cloud Platform (GCP) lainnya.
5. Menjalankan tugas
Untuk menjalankan tugas, Anda dapat menggunakan Cloud Console atau gcloud CLI menggunakan perintah berikut:
- Di Cloud Console, klik nama tugas, lalu klik Jalankan di dekat bagian atas halaman.
- Di gcloud CLI, gunakan perintah berikut:
gcloud beta run jobs execute JOB_NAME EXECUTION_OPTIONS
Ganti JOB_NAME
dengan nama pekerjaan. Secara opsional, ganti EXECUTION_OPTIONS
untuk menentukan:
- Segera eksekusi tugas setelah Anda membuat tugas.
gcloud beta run jobs create JOB_NAME --execute-now
- Jika Anda ingin menunggu hingga eksekusi selesai sebelum keluar.
gcloud beta run jobs create JOB_NAME --wait
- Jika Anda ingin keluar segera setelah membuat eksekusi baru.
gcloud beta run jobs create JOB_NAME --async
6. Menjalankan tugas sesuai jadwal
Jika Anda ingin menjalankan tugas sesuai jadwal, gunakan Cloud Scheduler.
Misalnya, Anda dapat membuat dan mengirim invoice secara berkala, atau menyimpan hasil kueri database sebagai XML dan mengupload file setiap beberapa jam.
Dengan Cloud Scheduler, Anda dapat menjadwalkan tugas dan mengelola semua tugas otomatisasi dari satu tempat.
- Jalankan tugas big data dan batch secara bersamaan setiap minggu, hari, atau jam dengan jaminan eksekusi dan percobaan ulang jika terjadi kegagalan.
- Mengotomatiskan banyak tugas membosankan yang terkait dengan menjalankan infrastruktur cloud dengan cara yang andal dan terkelola sepenuhnya.
- Otomatiskan hampir semua hal.
- Melihat dan mengelola semua tugas Anda dari satu UI atau antarmuka command line.
Setelah menyiapkan lingkungan untuk memungkinkan project Anda menggunakan Cloud Scheduler, Anda membuat tugas Cloud Run, lalu menentukan jadwal dengan memasukkan nama, region, deskripsi, frekuensi, dan zona waktu. Cloud Scheduler kemudian akan menjalankan tugas Cloud Run dengan frekuensi yang Anda tentukan.
7. Melihat status eksekusi tugas
Setelah tugas dijalankan, Anda dapat melihat log di log Cloud Logging dan memantau data di Cloud Monitoring.
Untuk melihat log, Anda dapat:
- Gunakan halaman Cloud Run di Cloud Console.
- Menggunakan Cloud Logging Logs Explorer di Cloud Console.
Kedua metode pengamatan tersebut akan memeriksa log yang sama yang disimpan di Cloud Logging, tetapi Cloud Logging Logs Explorer memberikan lebih banyak detail dan kemampuan pemfilteran.
Cloud Monitoring menyediakan pemantauan performa dan metrik Cloud Run, beserta pemberitahuan untuk mengirim notifikasi saat nilai minimum metrik tertentu terlampaui. Cloud Run terintegrasi otomatis dengan Cloud Monitoring tanpa memerlukan penyiapan atau konfigurasi. Artinya, metrik tugas Cloud Run Anda akan direkam secara otomatis saat tugas tersebut berjalan.
Anda dapat melihat metrik di Cloud Monitoring atau di halaman Cloud Run di konsol. Cloud Monitoring menyediakan lebih banyak opsi diagram dan pemfilteran.
8. Mengelola pekerjaan dan pelaksanaan pekerjaan
Untuk mengelola tugas Anda, gunakan Cloud Console atau gcloud CLI untuk melihat daftar:
Anda juga dapat:
- Hentikan eksekusi tugas yang sedang berjalan dengan menghapusnya.
- Hapus eksekusi tugas yang tidak berjalan.
- Menghapus tugas.
Menghapus tugas akan membatalkan semua eksekusi tugas yang tertunda dari tugas tersebut, tetapi log dan data pemantauan tugas akan tetap tersedia selama sisa periode retensi log, yang biasanya 30 hari. Pemantauan data terus tersedia di Cloud Monitoring.
9. Mendeteksi penyelesaian eksekusi tugas
Ada beberapa cara untuk mendeteksi apakah eksekusi tugas Anda telah selesai berjalan:
- Jalankan tugas Anda dengan flag
--wait
dan gcloud CLI akan keluar ketika tugas selesai.
gcloud beta run jobs execute JOB_NAME --wait
- Polling endpoint eksekusis.get REST API, dengan mencari kondisi status
Completed
menjadiTrue
. - Cari entri log tertulis saat eksekusi selesai yang terlihat seperti ini:
Completed condition status changed to True for Execution sleepy-l8zjp.
Untuk mencari pesan log ini, jalankan kueri berikut di Cloud Logging:
resource.type="cloud_run_revision"
resource.labels.revision_name="EXECUTION_NAME" log_name="projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Fsystem_event"
protoPayload.response.status.conditions.type="Completed"
protoPayload.response.status.conditions.status="True"
Anda juga dapat memeriksa lokasi tempat Anda menulis output untuk mendeteksi kapan output muncul. Namun, ini hanya berfungsi dengan benar jika menulis output adalah hal terakhir yang dilakukan tugas Anda. Misalnya, jika tugas Anda melakukan pembersihan setelah menulis output, tugas mungkin masih gagal setelah menulis output.
10. Perbarui pekerjaan
Saat membuat tugas, Anda dapat menentukan gambar container dengan tag atau ringkasan tepat:
- Contoh tag:
gcr.io/my-project/my-image:tag
- Contoh intisari:
gcr.io/my-project/my-image@sha256:41f34ab970ee...
Jika tidak ada yang ditentukan, tag :latest
akan digunakan.
Cara Anda memperbarui pekerjaan untuk menjalankan versi terbaru kode bergantung pada apakah Anda menentukan gambar container dengan tag atau ringkasan.
Jika Anda menentukan image container dengan tag, Cloud Run me-resolve gambar Anda ke ringkasan spesifik saat Anda menjalankan tugas. Ini berarti Anda tidak perlu secara eksplisit memperbarui pekerjaan Anda untuk mengambil versi terbaru penampung Anda saat menjalankan pekerjaan Anda lagi.
Jika Anda memilih untuk menggunakan intisari penampung tertentu setiap kali pekerjaan berjalan, Anda dapat menentukan gambar penampung dengan intisari yang tepat. Dalam hal ini, Anda harus memperbarui pekerjaan secara eksplisit untuk menggunakan intisari yang berbeda jika ingin tugas mengambil perubahan kode yang Anda buat:
gcloud alpha run jobs update JOB_NAME --image NEW-IMAGE
Apa pun cara yang Anda gunakan untuk menentukan gambar container, semua tugas eksekusi akan selalu menggunakan ringkasan yang sama.
Saat update sedang diterapkan, Anda tidak dapat memulai eksekusi baru. Anda harus menunggu hingga update selesai, yang biasanya memerlukan waktu beberapa detik. Jika update gagal, tidak ada eksekusi baru yang dapat dibuat. Anda harus mengembalikan tugas ke status baik terlebih dahulu dengan membuat pembaruan lain.
11. Selamat
Selamat, Anda telah mempelajari waktu dan cara menggunakan tugas Cloud Run!
Anda telah mempelajari:
- Apa yang dimaksud dengan tugas Cloud Run
- Kapan tugas Cloud Run digunakan
- Alur kerja tugas Cloud Run
- Cara membuat tugas Cloud Run
- Cara menjalankan tugas Cloud Run
- Cara menjalankan tugas sesuai jadwal
- Cara melihat status eksekusi
- Cara mengelola tugas dan eksekusi tugas
- Cara mendeteksi penyelesaian pekerjaan
- Cara memperbarui pekerjaan
Apa selanjutnya?
Bantuan
Untuk referensi gcloud lengkap, gunakan perintah help:
gcloud alpha run jobs --help
gcloud alpha run jobs executions --help
Dokumen referensi
Menjalankan tugas sesuai jadwal
Memantau Kesehatan dan Performa