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 168 jam (7 hari). Dukungan untuk waktu tunggu lebih dari 24 jam tersedia di Pratinjau. 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.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan guna membuat tugas Cloud Run, minta administrator Anda untuk memberi Anda peran IAM berikut:
-
Cloud Run Developer (
roles/run.developer
) di tugas Cloud Run -
Service Account User (
roles/iam.serviceAccountUser
) di identitas layanan
Untuk mengetahui daftar peran dan izin IAM yang terkait dengan Cloud Run, lihat peran IAM Cloud Run dan izin IAM Cloud Run. Jika tugas Cloud Run Anda berinteraksi dengan Google Cloud API, seperti Library Klien Cloud, lihat panduan konfigurasi identitas layanan. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat izin deployment dan mengelola akses.
Image dan registry container yang didukung
Anda dapat langsung menggunakan image container yang disimpan di Artifact Registry, atau Docker Hub. Google merekomendasikan penggunaan Artifact Registry.
Anda dapat menggunakan image container dari registry publik atau pribadi lainnya (seperti JFrog Artifactory, Nexus, atau GitHub Container Registry), dengan menyiapkan repositori jarak jauh Artifact Registry.
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.
Membuat tugas baru
Anda dapat membuat tugas baru menggunakan Google Cloud Console, Google Cloud CLI, YAML, atau Terraform.
Konsol
Untuk membuat pekerjaan baru:
Di konsol Google Cloud, buka halaman Cloud Run:
Klik Deploy container dan pilih Job untuk menampilkan formulir Create job.
- 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, volume, jaringan, keamanan untuk menetapkan properti tugas tambahan.
- Di bagian Kapasitas tugas:
- Di menu Memory, tentukan jumlah memori yang diperlukan. Setelan defaultnya adalah ukuran minimum yang diperlukan, 512 MiB.
- Di menu 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 168 jam (7 hari). Dukungan untuk waktu tunggu lebih dari 24 jam tersedia di Pratinjau. 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 tentukan jumlah tugas serentak di kolom 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.
gcloud
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 168 jam (7 hari). Dukungan untuk waktu tunggu lebih dari 24 jam tersedia di Pratinjau. --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
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 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 tugas, 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)asia-south1
(Mumbai, India)europe-north1
(Finlandia) CO2 Rendaheurope-southwest1
(Madrid) CO2 Rendaheurope-west1
(Belgia) CO2 Rendaheurope-west4
(Belanda) CO2 Rendaheurope-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) CO2 Rendahus-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-south2
(Delhi, India)australia-southeast1
(Sydney)australia-southeast2
(Melbourne)europe-central2
(Warsawa, Polandia)europe-west10
(Berlin) CO2 Rendaheurope-west12
(Turin)europe-west2
(London, Inggris Raya) CO2 Rendaheurope-west3
(Frankfurt, Jerman) CO2 Rendaheurope-west6
(Zurich, Swiss) CO2 Rendahme-central1
(Doha)me-central2
(Dammam)northamerica-northeast1
(Montreal) CO2 Rendahnorthamerica-northeast2
(Toronto) CO2 Rendahsouthamerica-east1
(São 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:
Di konsol Google Cloud, buka halaman Cloud Run:
Klik tab Tugas untuk menampilkan daftar tugas.
Klik tugas 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, volumes, networking, security untuk memperbarui properti tugas tambahan:
- Di bagian Kapasitas tugas:
- Di menu Memory, tentukan jumlah memori yang diperlukan. Setelan defaultnya adalah ukuran minimum yang diperlukan, 512 MiB.
- Di menu 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 168 jam (7 hari). Dukungan untuk waktu tunggu lebih dari 24 jam tersedia di Pratinjau. 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 di kolom Batas paralelisme kustom.
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.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
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 168 jam (7 hari). Dukungan untuk waktu tunggu lebih dari 24 jam tersedia di Pratinjau. --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
ke
endpoint jobs
Admin API Cloud Run.
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 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 perbarui.
- IMAGE_URL dengan URL image container tugas, 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 berikutnya
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