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

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:

  1. Di konsol Google Cloud, buka halaman Cloud Run:

    Buka Cloud Run

  2. Klik Deploy container dan pilih Job untuk menampilkan formulir Create job.

    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.
  3. Klik Container, volume, jaringan, keamanan untuk menetapkan properti tugas tambahan.

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

    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 tentukan jumlah tugas serentak di kolom Batas paralelisme kustom.
  4. Secara opsional, konfigurasikan setelan lainnya di tab yang sesuai:

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

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

  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 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 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" {
  name     = "cloud-run-job"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  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 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) ikon daun CO2 Rendah
  • europe-southwest1 (Madrid) ikon daun CO2 Rendah
  • europe-west1 (Belgia) ikon daun CO2 Rendah
  • europe-west4 (Belanda) ikon daun CO2 Rendah
  • 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) ikon daun CO2 Rendah
  • 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-south2 (Delhi, India)
  • australia-southeast1 (Sydney)
  • australia-southeast2 (Melbourne)
  • europe-central2 (Warsawa, Polandia)
  • europe-west10 (Berlin) ikon daun CO2 Rendah
  • 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 (Dammam)
  • northamerica-northeast1 (Montreal) ikon daun CO2 Rendah
  • northamerica-northeast2 (Toronto) ikon daun CO2 Rendah
  • southamerica-east1 (São 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. Di konsol Google Cloud, buka halaman Cloud Run:

    Buka Cloud Run

  2. Klik tab Tugas untuk menampilkan daftar tugas.

  3. Klik tugas 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, volumes, networking, security untuk memperbarui properti tugas tambahan:

    • Di bagian Kapasitas tugas:
    1. Di menu Memory, tentukan jumlah memori yang diperlukan. Setelan defaultnya adalah ukuran minimum yang diperlukan, 512 MiB.
    2. Di menu 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 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).
    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 di kolom Batas paralelisme kustom.
  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.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    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.

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

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