Membuat tugas

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:

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:

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:

  1. Buka Cloud Run

  2. Klik tab Tugas.

  3. Klik Buat Tugas untuk menampilkan formulir Buat tugas.

    1. Di bagian formulir, tentukan image container yang berisi kode tugas atau pilih dari daftar container yang sebelumnya di-deploy.
    2. 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.
    3. Pilih wilayah tempat Anda ingin tugas berada. Pemilih region menandai wilayah yang memiliki dampak karbon terendah.
    4. Tentukan jumlah tugas yang ingin Anda jalankan dalam tugas. Semua tugas harus berhasil agar pekerjaan berhasil. Secara default, tugas dijalankan secara paralel.
  4. Klik Container(s), volume, networking, security untuk menetapkan properti pekerjaan tambahan.

    • Di bagian Kapasitas tugas:
    1. Di menu dropdown Memory, tetapkan jumlah memori yang diperlukan. Setelan defaultnya adalah ukuran minimum yang diperlukan, 512 MiB.
    2. Di menu dropdown CPU, tentukan jumlah CPU yang diperlukan. Defaultnya adalah jumlah minimum yang diperlukan, 1 CPU.
    3. 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).

    4. 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:

      1. Dalam sebagian besar kasus, Anda dapat memilih Jalankan sebanyak mungkin tugas secara serentak.
      2. 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.
  5. Secara opsional, konfigurasikan setelan lainnya di tab yang sesuai:

  6. Setelah selesai mengonfigurasi tugas, klik Create untuk membuat tugas di Cloud Run.

  7. 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:

  1. Jalankan perintah:

    gcloud run jobs create JOB_NAME --image IMAGE_URL OPTIONS
    Atau, gunakan perintah deploy:
    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, beserta CLOUD_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 dengan gcloud 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.

  2. Tunggu hingga pembuatan tugas selesai dibuat. Anda akan melihat pesan berhasil setelah berhasil diselesaikan.

  3. 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.

  1. 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.

  2. 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.

resource "google_cloud_run_v2_job" "default" {
  provider     = google-beta
  name         = "cloud-run-job"
  location     = "us-central1"
  launch_stage = "BETA"

  template {
    template {
      containers {
        image = "us-docker.pkg.dev/cloudrun/container/job:latest"
      }
    }
  }
}

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) ikon daun CO2 Rendah
  • europe-southwest1 (Madrid)
  • europe-west1 (Belgia) ikon daun CO2 Rendah
  • europe-west4 (Belanda)
  • europe-west8 (Milan)
  • europe-west9 (Paris) ikon daun CO2 Rendah
  • me-west1 (Tel Aviv)
  • us-central1 (Iowa) ikon daun CO2 rendah
  • us-east1 (South Carolina)
  • us-east4 (North Virginia)
  • us-east5 (Columbus)
  • us-south1 (Dallas)
  • us-west1 (Oregon) ikon daun 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) ikon daun CO2 Rendah
  • europe-west3 (Frankfurt, Jerman) ikon daun CO2 Rendah
  • europe-west6 (Zurich, Swiss) ikon daun CO2 Rendah
  • me-central1 (Doha)
  • me-central2 (Damam)
  • northamerica-northeast1 (Montreal) ikon daun CO2 Rendah
  • northamerica-northeast2 (Toronto) ikon daun CO2 Rendah
  • southamerica-east1 (Sao Paulo, Brasil) ikon daun CO2 Rendah
  • southamerica-west1 (Santiago, Cile) ikon daun CO2 Rendah
  • us-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:

  1. Buka Cloud Run

  2. Klik tab Tugas untuk menampilkan daftar tugas.

  3. Klik tugas yang diinginkan untuk menampilkan halaman detail Tugas.

  4. Klik Edit.

  5. Jika Anda membuat perubahan pada kode tugas, tentukan image digest container baru.

  6. Secara opsional, ubah jumlah tugas yang ada dalam tugas jika diperlukan.

  7. Secara opsional, klik Container(s), volume, networking, security untuk memperbarui properti pekerjaan tambahan sesuai keinginan:

    • Di bagian Kapasitas tugas:
    1. Di menu dropdown Memory, tetapkan jumlah memori yang diperlukan. Setelan defaultnya adalah ukuran minimum yang diperlukan, 512 MiB.
    2. Di menu dropdown CPU, tentukan jumlah CPU yang diperlukan. Defaultnya adalah jumlah minimum yang diperlukan, 1 CPU.
    3. 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).
    4. 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:

      1. Dalam sebagian besar kasus, Anda dapat memilih Jalankan sebanyak mungkin tugas secara serentak.
      2. 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.
  8. Secara opsional, konfigurasikan setelan lainnya di tab yang sesuai:

  9. Setelah selesai mengonfigurasi tugas, klik Simpan untuk membuat tugas di Cloud Run dan tunggu hingga pembuatan tugas selesai.

  10. Untuk menjalankan tugas, lihat menjalankan tugas atau menjalankan tugas sesuai jadwal.

Command line

  1. Di konsol Google Cloud, aktifkan Cloud Shell.

    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.

  2. 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, beserta CLOUD_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:

    Untuk daftar lengkap opsi yang tersedia saat membuat tugas, lihat dokumentasi command line buat tugas gcloud run.

  3. 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
    
  4. 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:

  1. Perbarui konfigurasi tugas yang ada:

    gcloud run jobs replace job.yaml
  2. 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: