Halaman ini menjelaskan cara membuat dan memperbarui tugas Cloud Run dari image container yang ada. Tidak seperti layanan Cloud Run yang memproses dan menyalurkan permintaan, tugas Cloud Run hanya menjalankan tugasnya dan keluar setelah selesai. Tugas tidak memproses atau melayani permintaan.
Setelah Anda membuat atau memperbarui tugas, Anda dapat:
- Menjalankan tugas sekaligus, sesuai jadwal, atau sebagai bagian dari alur kerja.
- Anda dapat mengganti parameter yang dikonfigurasi untuk tugas saat menjalankan tugas.
- Anda dapat mengelola setiap eksekusi tugas dan melihat log eksekusi.
Anda dapat menyusun tugas sebagai satu tugas atau sebagai beberapa tugas independen (hingga
10,000 tugas) yang dapat dijalankan secara paralel. Setiap
tugas menjalankan satu instance container dan dapat dikonfigurasi untuk mencoba lagi jika terjadi
kegagalan. Setiap tugas memahami indeksnya, yang disimpan di
variabel lingkungan CLOUD_RUN_TASK_INDEX
. Jumlah keseluruhan tugas
disimpan dalam variabel lingkungan CLOUD_RUN_TASK_COUNT
. Jika Anda memproses
data secara paralel, kode Anda bertanggung jawab untuk menentukan tugas mana yang menangani subset data.
Anda dapat menetapkan waktu tunggu pada tugas dan menentukan jumlah percobaan ulang jika terjadi kegagalan tugas. Jika tugas apa pun melebihi jumlah percobaan ulang maksimumnya, tugas tersebut akan ditandai sebagai gagal dan eksekusi tugas ditandai sebagai gagal setelah semua tugas dijalankan.
Secara default, setiap tugas berjalan selama maksimum 10 menit: Anda dapat mengubahnya menjadi waktu yang lebih singkat atau waktu yang lebih lama hingga 24 jam. Anda dapat melakukannya dengan mengubah setelan waktu tunggu tugas.
Tidak ada waktu tunggu eksplisit untuk eksekusi tugas: setelah semua tugas selesai, eksekusi tugas akan selesai.
Tugas menggunakan lingkungan eksekusi generasi kedua.
Izin IAM yang diperlukan untuk membuat dan menjalankan
Untuk menggunakan tugas Cloud Run, Anda harus memiliki salah satu peran berikut:
- Admin Cloud Run untuk mendapatkan izin penuh guna membuat/memperbarui/menghapus dan menjalankan tugas
- Cloud Run Invoker untuk menjalankan tugas
- Penampil Cloud Run untuk melihat dan membuat daftar tugas
Jika Anda mengonfigurasi peran khusus, gunakan izin berikut:
- run.jobs.{create/update/run/delete/get/list/getIamPolicy/setIamPolicy}
- run.executions.{get/list/delete}
- run.tasks.{get/list}
run.jobs.run
memungkinkan pengguna menjalankan tugas sehingga memulai eksekusi baru. Tidak
ada izin run.executions.create
terpisah: satu-satunya cara untuk membuat
eksekusi adalah dengan menjalankan tugas.
Image dan registry container yang didukung
Anda dapat menggunakan image container yang disimpan di Artifact Registry, Container Registry (Tidak digunakan lagi), atau Docker Hub. Google merekomendasikan penggunaan Artifact Registry.
Anda hanya dapat menggunakan jenis image container berikut:
- Image container yang disimpan dalam project yang sama dengan tempat Anda membuat tugas atau layanan.
- Image container dari project Google Cloud lainnya (asalkan izin IAM yang benar telah ditetapkan).
- Image container publik dari Artifact Registry, Container Registry, atau Docker Hub.
Sebaiknya hanya pertimbangkan Docker Hub untuk men-deploy image container populer seperti Gambar Resmi Docker atau image OSS Bersponsor Docker. Untuk ketersediaan yang lebih tinggi, Google merekomendasikan untuk men-deploy image Docker Hub ini melalui repositori jarak jauh Artifact Registry.
Jika Anda menyimpan image container di jenis registry container lain, ikuti petunjuk di bagian men-deploy image dari registry yang tidak didukung.
Membuat pekerjaan baru
Anda dapat membuat tugas baru menggunakan Google Cloud Console, Google Cloud CLI, YAML, atau Terraform.
Konsol
Untuk membuat pekerjaan baru:
Klik tab Tugas.
Klik Buat Tugas untuk menampilkan formulir Buat tugas.
- Di bagian formulir, tentukan image container yang berisi kode tugas atau pilih dari daftar container yang sebelumnya di-deploy.
- Nama tugas dibuat secara otomatis dari image container. Anda dapat mengedit atau mengubah nama pekerjaan sesuai kebutuhan. Nama pekerjaan tidak dapat diubah setelah tugas dibuat.
- Pilih wilayah tempat Anda ingin tugas berada. Pemilih region menandai wilayah yang memiliki dampak karbon terendah.
- Tentukan jumlah tugas yang ingin Anda jalankan dalam tugas. Semua tugas harus berhasil agar pekerjaan berhasil. Secara default, tugas dijalankan secara paralel.
Klik Container(s), volume, networking, security untuk menetapkan properti pekerjaan tambahan.
- Di bagian Kapasitas tugas:
- Di menu dropdown Memory, tetapkan jumlah memori yang diperlukan. Setelan defaultnya adalah ukuran minimum yang diperlukan, 512 MiB.
- Di menu dropdown CPU, tentukan jumlah CPU yang diperlukan. Defaultnya adalah jumlah minimum yang diperlukan, 1 CPU.
Di bagian Waktu tunggu tugas, tentukan jumlah waktu maksimum dalam detik untuk menjalankan tugas, hingga 24 jam. Setiap tugas harus selesai dalam jangka waktu ini. Defaultnya adalah 10 menit (600 detik).
Di bagian Jumlah percobaan ulang per tugas yang gagal, tentukan jumlah percobaan ulang jika terjadi kegagalan tugas. Defaultnya adalah 3 percobaan ulang.
Di bawah Paralelisme:
- Dalam sebagian besar kasus, Anda dapat memilih Jalankan sebanyak mungkin tugas secara serentak.
- Jika Anda perlu menetapkan batas yang lebih rendah karena batasan penskalaan pada resource yang diakses tugas Anda, pilih Batasi jumlah maksimum tugas serentak dan menentukan jumlah tugas serentak di kotak teks Batas paralelisme kustom.
Secara opsional, konfigurasikan setelan lainnya di tab yang sesuai:
Setelah selesai mengonfigurasi tugas, klik Create untuk membuat tugas di Cloud Run.
Untuk menjalankan tugas, lihat menjalankan tugas atau menjalankan tugas sesuai jadwal.
Command line
Untuk menggunakan command line, Anda harus sudah menyiapkan gcloud CLI.
Untuk membuat pekerjaan baru:
Jalankan perintah:
Atau, gunakan perintah deploy:gcloud run jobs create JOB_NAME --image IMAGE_URL OPTIONS
gcloud run jobs deploy JOB_NAME --image IMAGE_URL OPTIONS
- Ganti
JOB_NAME
dengan nama pekerjaan yang ingin Anda buat. Anda dapat menghilangkan parameter ini, tetapi Anda akan diminta untuk memasukkan nama tugas jika menghilangkannya. - Ganti IMAGE_URL dengan referensi ke image container,
contohnya,
us-docker.pkg.dev/cloudrun/container/job:latest
. Secara opsional, ganti
OPTIONS
dengan salah satu opsi berikut:Opsi Deskripsi --tasks
Menerima bilangan bulat yang lebih besar atau sama dengan 1. Default-nya adalah 1; maksimum adalah 10,000. Setiap tugas diberi variabel lingkungan CLOUD_RUN_TASK_INDEX
dengan nilai antara 0 dan jumlah tugas minus 1, besertaCLOUD_RUN_TASK_COUNT
, yang merupakan jumlah tugas--max-retries
Frekuensi tugas yang gagal dicoba lagi. Setelah tugas gagal melebihi batas ini, seluruh tugas akan ditandai sebagai gagal. Misalnya, jika disetel ke 1, tugas yang gagal akan dicoba lagi sekali, dengan total dua kali. Nilai defaultnya adalah 3. Menerima bilangan bulat dari 0 hingga 10. --task-timeout
Menerima durasi seperti "2 dtk". Default-nya adalah 10 menit; maksimum 24 jam. --parallelism
Jumlah tugas maksimum yang dapat dijalankan secara paralel. Secara default, tugas akan dimulai secepat mungkin secara paralel. Lihat Paralelisme untuk rentang nilai. --execute-now
Jika ditetapkan, segera setelah tugas dibuat, eksekusi tugas akan dimulai. Setara dengan memanggil gcloud run jobs create
yang diikuti dengangcloud run jobs execute
.Selain opsi di atas, Anda juga menentukan konfigurasi lain seperti variabel lingkungan atau batas memori.
Untuk daftar lengkap opsi yang tersedia saat membuat tugas, lihat dokumentasi command line buat tugas gcloud run.
- Ganti
Tunggu hingga pembuatan tugas selesai dibuat. Anda akan melihat pesan berhasil setelah berhasil diselesaikan.
Untuk menjalankan tugas, lihat menjalankan tugas atau menjalankan tugas sesuai jadwal.
YAML
Anda dapat menyimpan spesifikasi tugas dalam file YAML
, lalu men-deploy-nya
menggunakan gcloud CLI.
Buat file
job.yaml
baru dengan konten ini:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB spec: template: spec: template: spec: containers: - image: IMAGE
Ganti
- JOB dengan nama tugas Cloud Run Anda. Nama tugas harus berisi maksimal 49 karakter dan harus unik per region dan project.
- IMAGE dengan URL image container lowongan.
Anda juga dapat menentukan konfigurasi lainnya, seperti variabel lingkungan atau batas memori.
Deploy tugas baru menggunakan perintah berikut:
gcloud run jobs replace job.yaml
Terraform
Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.
Untuk membuat tugas Cloud Run baru, gunakan resource google_cloud_run_v2_job
dan ubah file main.tf
Anda seperti yang ditunjukkan dalam
cuplikan berikut.
Library klien
Untuk membuat tugas dari kode:
REST API
Untuk membuat tugas, kirim permintaan HTTP POST
untuk meminta ke endpoint jobs
Cloud Run Admin API.
Misalnya, menggunakan curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X POST \ -d '{template: {template: {containers: [{image: "IMAGE_URL"}]}}}' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs?jobId=JOB_NAME
Ganti:
- ACCESS_TOKEN dengan token akses yang valid untuk akun yang memiliki izin IAM untuk membuat tugas.
Misalnya, jika Anda login ke gcloud, Anda dapat mengambil token akses menggunakan
gcloud auth print-access-token
. Dari dalam instance container Cloud Run, Anda dapat mengambil token akses menggunakan server metadata instance container. - JOB_NAME dengan nama tugas yang ingin Anda buat.
- IMAGE_URL dengan URL image container lowongan, misalnya,
us-docker.pkg.dev/cloudrun/container/job:latest
. - REGION dengan region Google Cloud tugas.
- PROJECT_ID dengan ID project Google Cloud.
Lokasi Cloud Run
Cloud Run bersifat regional, berarti infrastruktur yang
menjalankan layanan Cloud Run Anda terletak di region tertentu dan
dikelola oleh Google agar tersedia secara redundan di
semua zona dalam region tersebut.
Memenuhi persyaratan latensi, ketersediaan, atau ketahanan adalah faktor utama
untuk memilih region tempat layanan Cloud Run dijalankan.
Pada umumnya, Anda dapat memilih region yang paling dekat dengan pengguna Anda, tetapi Anda harus mempertimbangkan
lokasi dari produk Google Cloud
lain yang digunakan oleh layanan Cloud Run Anda.
Menggunakan produk Google Cloud secara bersamaan di beberapa lokasi dapat memengaruhi
latensi serta biaya layanan Anda.
Cloud Run tersedia di region berikut:
Tergantung harga Tingkat 1
asia-east1
(Taiwan)asia-northeast1
(Tokyo)asia-northeast2
(Osaka)europe-north1
(Finlandia) CO2 Rendaheurope-southwest1
(Madrid)europe-west1
(Belgia) CO2 Rendaheurope-west4
(Belanda)europe-west8
(Milan)europe-west9
(Paris) CO2 Rendahme-west1
(Tel Aviv)us-central1
(Iowa) CO2 rendahus-east1
(South Carolina)us-east4
(North Virginia)us-east5
(Columbus)us-south1
(Dallas)us-west1
(Oregon) CO2 Rendah
Tergantung harga Tingkat 2
africa-south1
(Johannesburg)asia-east2
(Hong Kong)asia-northeast3
(Seoul, Korea Selatan)asia-southeast1
(Singapura)asia-southeast2
(Jakarta)asia-south1
(Mumbai, India)asia-south2
(Delhi, India)australia-southeast1
(Sydney)australia-southeast2
(Melbourne)europe-central2
(Warsawa, Polandia)europe-west10
(Berlin)europe-west12
(Turin)europe-west2
(London, Inggris Raya) CO2 Rendaheurope-west3
(Frankfurt, Jerman) CO2 Rendaheurope-west6
(Zurich, Swiss) CO2 Rendahme-central1
(Doha)me-central2
(Damam)northamerica-northeast1
(Montreal) CO2 Rendahnorthamerica-northeast2
(Toronto) CO2 Rendahsouthamerica-east1
(Sao Paulo, Brasil) CO2 Rendahsouthamerica-west1
(Santiago, Cile) CO2 Rendahus-west2
(Los Angeles)us-west3
(Salt Lake City)us-west4
(Las Vegas)
Jika sudah membuat layanan Cloud Run, Anda dapat melihat region di dasbor Cloud Run di Konsol Google Cloud.
Saat Anda membuat tugas baru, agen layanan Cloud Run harus dapat mengakses container, yang merupakan kasus default.
Memperbarui tugas yang ada
Jika setelan konfigurasi diubah, Anda harus memperbarui tugas, meskipun tidak ada perubahan pada image container. Perlu diperhatikan bahwa untuk setelan yang tidak diubah, setelan sebelumnya akan terus digunakan.
Anda dapat memperbarui tugas yang ada menggunakan Google Cloud Console, Google Cloud CLI, YAML, atau Terraform.
Konsol
Untuk memperbarui pekerjaan yang sudah ada:
Klik tab Tugas untuk menampilkan daftar tugas.
Klik tugas yang diinginkan untuk menampilkan halaman detail Tugas.
Klik Edit.
Jika Anda membuat perubahan pada kode tugas, tentukan image digest container baru.
Secara opsional, ubah jumlah tugas yang ada dalam tugas jika diperlukan.
Secara opsional, klik Container(s), volume, networking, security untuk memperbarui properti pekerjaan tambahan sesuai keinginan:
- Di bagian Kapasitas tugas:
- Di menu dropdown Memory, tetapkan jumlah memori yang diperlukan. Setelan defaultnya adalah ukuran minimum yang diperlukan, 512 MiB.
- Di menu dropdown CPU, tentukan jumlah CPU yang diperlukan. Defaultnya adalah jumlah minimum yang diperlukan, 1 CPU.
- Di bagian Waktu tunggu tugas, tentukan jumlah waktu maksimum dalam detik untuk menjalankan tugas, hingga 24 jam. Setiap tugas harus selesai dalam jangka waktu ini. Defaultnya adalah 10 menit (600 detik).
- Di bagian Jumlah percobaan ulang per tugas yang gagal, tentukan jumlah percobaan ulang jika terjadi kegagalan tugas. Defaultnya adalah 3 percobaan ulang.
Di bawah Paralelisme:
- Dalam sebagian besar kasus, Anda dapat memilih Jalankan sebanyak mungkin tugas secara serentak.
- Jika Anda perlu menetapkan batas yang lebih rendah karena batasan penskalaan pada resource yang diakses tugas Anda, pilih Batasi jumlah tugas serentak dan tentukan jumlah maksimum tugas serentak dalam kotak teks Batas paralelisme kustomkotak teks.
Secara opsional, konfigurasikan setelan lainnya di tab yang sesuai:
Setelah selesai mengonfigurasi tugas, klik Simpan untuk membuat tugas di Cloud Run dan tunggu hingga pembuatan tugas selesai.
Untuk menjalankan tugas, lihat menjalankan tugas atau menjalankan tugas sesuai jadwal.
Command line
-
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
Jalankan perintah:
gcloud run jobs update JOB_NAME
Ganti
JOB_NAME
dengan nama pekerjaan yang ingin Anda perbarui.Secara opsional, ganti
OPTIONS
dengan opsi berikut:Opsi Deskripsi --tasks
Menerima bilangan bulat yang sama atau lebih besar dari 1. Default-nya adalah 1; maksimum adalah 10,000. Setiap tugas diberi variabel lingkungan CLOUD_RUN_TASK_INDEX
dengan nilai antara 0 dan jumlah tugas minus 1, besertaCLOUD_RUN_TASK_COUNT
, yang merupakan jumlah tugas--max-retries
Frekuensi tugas yang gagal dicoba lagi. Setelah tugas gagal melebihi batas ini, seluruh tugas akan ditandai sebagai gagal. Misalnya, jika disetel ke 1, tugas yang gagal akan dicoba lagi sekali, dengan total dua kali. Defaultnya adalah 3
. Menerima bilangan bulat dari 0 hingga 10.--task-timeout
Menerima durasi seperti "2 dtk". Default-nya adalah 10 menit; maksimum 24 jam. --parallelism
Jumlah tugas maksimum yang dapat dijalankan secara paralel. Secara default, tugas akan dimulai secepat mungkin, secara paralel. Lihat Paralelisme untuk rentang nilai.
Selain opsi di atas, Anda dapat menetapkan setelan konfigurasi opsional lainnya:
- Konfigurasi Container
- Batas CPU
- Batas memori
- Rahasia
- Variabel lingkungan
- Label
- Akun layanan
- Koneksi Cloud SQL
- Koneksi VPC
Untuk daftar lengkap opsi yang tersedia saat membuat tugas, lihat dokumentasi command line buat tugas gcloud run.
Tunggu hingga update tugas selesai. Setelah berhasil diselesaikan, pesan sukses akan ditampilkan, mirip dengan berikut ini:
Job [JOB_NAME] has been successfully updated. View details about this job by running `gcloud run jobs describe JOB_NAME`. See logs for this execution at: https://console.cloud.google.com/logs/viewer?project=PROJECT_ID&resource=cloud_run_revision/service_name/JOB_NAME
Untuk menjalankan tugas, lihat menjalankan tugas atau menjalankan tugas sesuai jadwal.
YAML
Jika Anda perlu mendownload atau melihat konfigurasi tugas yang sudah ada, gunakan perintah berikut untuk menyimpan hasil ke file YAML:
gcloud run jobs describe JOB --format export > job.yaml
Dari file YAML konfigurasi tugas, ubah atribut turunan spec.template
sesuai keinginan untuk memperbarui setelan konfigurasi, lalu deploy ulang:
Perbarui konfigurasi tugas yang ada:
gcloud run jobs replace job.yaml
Untuk menjalankan tugas, lihat menjalankan tugas atau menjalankan tugas sesuai jadwal.
Terraform
Buat perubahan pada konfigurasi tugas di file main.tf
Anda menggunakan
perintah terraform apply
. Petunjuk Terraform mendetail tersedia untuk:
Untuk informasi selengkapnya, lihat opsi command line terraform apply
.
Library klien
Untuk memperbarui tugas yang ada dari kode:
REST API
Untuk memperbarui tugas, kirim permintaan HTTP PATCH
untuk meminta ke endpoint jobs
Cloud Run Admin API.
Misalnya, menggunakan curl
:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X PATCH \ -d '{template: {template: {containers: [{image: "IMAGE_URL"}]}}}' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME
Ganti:
- ACCESS_TOKEN dengan token akses yang valid untuk akun yang
memiliki izin IAM untuk memperbarui tugas.
Misalnya, jika Anda login ke gcloud, Anda dapat mengambil token akses menggunakan
gcloud auth print-access-token
. Dari dalam instance container Cloud Run, Anda dapat mengambil token akses menggunakan server metadata instance container. - JOB_NAME dengan nama pekerjaan Anda yang ingin diperbarui.
- IMAGE_URL dengan URL image container lowongan, misalnya,
us-docker.pkg.dev/cloudrun/container/job:latest
. - REGION dengan region Google Cloud tugas.
- PROJECT_ID dengan ID project Google Cloud.
Kode contoh
Untuk mengetahui contoh kode yang menampilkan tugas sederhana, lihat panduan memulai khusus bahasa.
Langkah selanjutnya
Setelah membuat atau memperbarui tugas, Anda dapat melakukan hal berikut:
- Menjalankan tugas
- Menjalankan tugas sesuai jadwal
- Mengelola tugas
- Mengelola eksekusi tugas
- Lihat log tugas
- Memantau performa tugas
- Menetapkan batas memori
- Menetapkan variabel lingkungan