Menjalankan tugas

Halaman ini menjelaskan cara Cloud Run menjalankan tugasnya. Mengeksekusi tugas membuat eksekusi tugas di mana semua tugas harus dijalankan hingga selesai dengan sukses agar eksekusi tugas berhasil. Eksekusi tugas akan menulis log ke Cloud Logging dan mengirim data pemantauan ke Cloud Monitoring.

Selain fitur logging ini, Anda juga dapat melihat detail eksekusi tugas untuk 1.000 eksekusi tugas terbaru menggunakan panel detail eksekusi, beserta eksekusi yang terjadi dalam tujuh hari terakhir. Detail eksekusi lama dipindahkan dan tidak akan lagi terlihat di panel detail eksekusi. Namun, log dan data pemantauan untuk eksekusi yang lebih lama masih tersedia di Cloud Logging dan Cloud Monitoring, yang tunduk pada kebijakan retensi untuk produk tersebut

Peran yang diperlukan

Untuk mendapatkan izin yang Anda perlukan untuk operasi yang dijelaskan di halaman ini, minta administrator Anda untuk memberi Anda salah satu peran IAM berikut di tugas Cloud Run Anda:

  • Untuk menjalankan tugas menggunakan Google Cloud CLI: Cloud Run Invoker (roles/run.invoker) pada tugas Cloud Run
  • Untuk mengeksekusi tugas menggunakan konsol Google Cloud , mengganti konfigurasi tugas, atau membatalkan eksekusi tugas: Cloud Run Developer (roles/run.developer) pada tugas Cloud Run

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.

Menjalankan tugas

Anda dapat menjalankan tugas menggunakan konsol Google Cloud , Google Cloud CLI, library klien, atau REST API.

Konsol

Untuk menjalankan tugas:

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

    Buka tugas Cloud Run

  2. Temukan tugas yang Anda minati.

  3. Klik tugas untuk menampilkan halaman detail tugas.

  4. Klik Jalankan.

gcloud

Untuk menjalankan tugas yang ada:

gcloud run jobs execute JOB_NAME

Jika Anda ingin perintahnya menunggu sampai eksekusi selesai, gunakan

gcloud run jobs execute JOB_NAME --wait --region=REGION

Ganti kode berikut:

  • JOB_NAME: nama tugas.
  • REGION: region tempat resource dapat ditemukan. Contoh, europe-west1. Atau, tetapkan properti run/region.

Library klien

Untuk menjalankan tugas yang ada dari kode:

REST API

Untuk menjalankan tugas yang ada, kirim permintaan HTTP POST ke metode API jobs.run.

Misalnya, menggunakan curl:

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X POST \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME:run

Ganti kode berikut:

  • ACCESS_TOKEN: token akses yang valid untuk akun yang memiliki izin IAM untuk menjalankan 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: nama tugas.
  • REGION: Google Cloud region tugas.
  • PROJECT_ID: Google Cloud Project ID

Menjalankan tugas segera

Konsol

Untuk menjalankan tugas segera:

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

    Buka tugas Cloud Run

  2. Jika Anda memiliki tugas yang ada, klik tugas untuk menampilkan halaman detail tugas, lalu pilih Lihat & edit konfigurasi tugas. Jika Anda membuat tugas baru, pilih Deploy container.

  3. Buka bagian bawah halaman dan centang kotak Jalankan tugas segera sebelum membuat atau memperbarui tugas.

gcloud

Anda dapat menentukan tanda --execute-now saat membuat atau memperbarui tugas:

  • Membuat tugas:

    gcloud run jobs create JOB_NAME \
      --image IMAGE_URL \
      --execute-now \
      --region=REGION
  • Memperbarui tugas:

    gcloud run jobs update JOB_NAME --execute-now --region=REGION

Ganti kode berikut:

  • JOB_NAME: nama tugas.
  • IMAGE_URL: referensi ke image container—misalnya, us-docker.pkg.dev/cloudrun/container/job:latest.
  • REGION: region tempat resource dapat ditemukan. Contoh, europe-west1.

YAML

Anda dapat menyimpan spesifikasi tugas dalam file YAML, lalu men-deploy-nya menggunakan gcloud CLI.

  1. Jika Anda membuat tugas baru, lewati langkah ini. Jika Anda memperbarui tugas yang ada, download konfigurasi YAML-nya:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Konfigurasikan atribut startExecutionToken seperti yang ditunjukkan berikut:

    apiVersion: run.googleapis.com/v2
    kind: Job
    metadata:
      name: JOB_NAME
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE_URL
      startExecutionToken: START_EXECUTION_SUFFIX

    Ganti kode berikut:

    • JOB_NAME: nama tugas Cloud Run Anda. Nama tugas harus terdiri dari 49 karakter atau kurang dan harus unik per region dan project.
    • IMAGE_URL: referensi ke image container—misalnya, us-docker.pkg.dev/cloudrun/container/job:latest.
    • START_EXECUTION_SUFFIX: string unik yang digunakan sebagai akhiran untuk membuat eksekusi baru. Tugas akan siap saat eksekusi berhasil dimulai. Jumlah panjang nama tugas dan token harus kurang dari 63 karakter.

    Anda juga dapat menentukan konfigurasi lainnya, seperti variabel lingkungan atau batas memori.

  3. Buat atau perbarui tugas menggunakan perintah berikut:

    gcloud run jobs replace job.yaml

Terraform

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

Tambahkan kode berikut ke resource google_cloud_run_v2_job di konfigurasi Terraform Anda:
resource "google_cloud_run_v2_job" "default" {
   provider = google-beta
   name     = "cloudrun-job"
   location = "REGION"
   deletion_protection = false
   start_execution_token = "START_EXECUTION_SUFFIX"
   template {
      template {
         containers {
         image = "us-docker.pkg.dev/cloudrun/container/job"
         }
      }
   }
}

Ganti kode berikut:

  • REGION: Google Cloud region. Misalnya, europe-west1.
  • START_EXECUTION_SUFFIX: string unik yang digunakan sebagai akhiran untuk membuat eksekusi baru. Tugas akan siap saat eksekusi berhasil dimulai. Jumlah panjang nama tugas dan token harus kurang dari 63 karakter.

Library klien

Untuk segera menjalankan tugas dari kode menggunakan Library Klien Cloud:

REST API

Untuk menjalankan tugas segera setelah dibuat, 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"
              }
        }
     },
     "startExecutionToken": "START_EXECUTION_SUFFIX"
  }' \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs?jobId=JOB_NAME"

Ganti kode berikut:

  • ACCESS_TOKEN: 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.
  • IMAGE_URL: referensi ke image container—misalnya, us-docker.pkg.dev/cloudrun/container/job:latest.
  • START_EXECUTION_SUFFIX: string unik yang digunakan sebagai akhiran untuk membuat eksekusi baru. Tugas akan siap saat eksekusi berhasil dimulai. Jumlah panjang nama tugas dan token harus kurang dari 63 karakter.
  • PROJECT_ID: Google Cloud Project ID
  • REGION: Google Cloud region tugas.
  • JOB_NAME: nama tugas yang ingin Anda buat.

Mengganti konfigurasi tugas untuk eksekusi tertentu

Dengan menetapkan parameter ini saat memulai eksekusi tugas baru, Anda dapat mengganti argumen, variabel lingkungan, jumlah, dan waktu tunggu yang dikonfigurasi untuk menjalankan suatu tugas. Parameter yang Anda tentukan hanya memengaruhi eksekusi ini, bukan eksekusi berikutnya karena definisi tugas yang mendasarinya tidak berubah.

Beberapa kasus penggunaan umum mencakup:

  • Anda menjalankan tugas secara terprogram dari kode Anda, dan ingin mengganti argumen dan/atau variabel lingkungan, misalnya untuk memberi tahu tugas lokasi data input untuk eksekusi ini.
  • Anda memiliki tugas dengan setiap tugas hanya digunakan untuk memproses satu bagian data input. Anda ingin mengganti jumlah tugas berdasarkan jumlah input yang diproses.
  • Waktu berjalannya tugas Anda bervariasi di setiap eksekusi. Anda ingin mengganti waktu tunggu tugas berdasarkan waktu berjalannya tugas yang diharapkan.

Untuk mengganti konfigurasi tugas suatu eksekusi:

Konsol

  1. Buka halaman tugas Cloud Run

  2. Temukan tugas yang Anda minati.

  3. Klik tugas untuk menampilkan halaman detail tugas.

  4. Klik panah luaskan di depan tombol Edit, lalu klik Execute dengan penggantian untuk menampilkan formulir Jalankan tugas dengan penggantian.

    gambar

  5. Ubah argumen, variabel lingkungan, jumlah tugas, dan/atau konfigurasi waktu tunggu tugas untuk eksekusi ini sesuai keinginan, lalu klik Jalankan.

gcloud

Gunakan perintah:

gcloud run jobs execute JOB_NAME \
     --args ARGS \
     --update-env-vars KEY=VALUE>,KEY_N=VALUE_N \
     --tasks TASKS \
     --task-timeout TIMEOUT

Ganti kode berikut:

Library klien

Untuk menjalankan tugas yang ada dari kode, dengan mengganti konfigurasi tugas:

REST API

Untuk mengganti konfigurasi tugas untuk tugas yang ada, 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 '{"overrides": {"containerOverrides": [{"args": ["ARGS"], "env": [{"name": "KEY", "value": "VALUE"}]}], "taskCount": TASKS, "timeout": "TIMEOUT" }}' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME:run

Ganti kode berikut:

Membatalkan eksekusi tugas

Untuk menghentikan eksekusi tugas Cloud Run yang sedang berjalan, gunakan fitur pembatalan. Membatalkan eksekusi tugas akan menghentikan eksekusi tugas saat ini. Eksekusi yang dibatalkan akan berstatus cancelled. Anda tetap dapat melihat eksekusi tersebut, termasuk data konfigurasi, log, dan data pemantauan.

Membatalkan eksekusi tugas tidak akan membatalkan tagihan untuk penggunaan tugas Cloud Run selama tugas dijalankan.

Untuk membatalkan eksekusi:

Konsol

  1. Buka halaman tugas Cloud Run

  2. Klik tugas untuk membuka panel detail tugas.

  3. Pilih eksekusi tugas yang ingin Anda batalkan.

  4. Di menu Tindakan, klik ikon elipsis, lalu klik Batalkan.

gcloud

Gunakan perintah:

gcloud run jobs executions cancel EXECUTION_NAME

Ganti EXECUTION_NAME dengan nama eksekusi.

Perintah ini meminta konfirmasi, jadi tanggapi permintaan dengan memasukkan y untuk mengonfirmasi.

Library klien

Untuk membatalkan eksekusi tugas dari kode:

REST API

Untuk membatalkan eksekusi 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 '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME/executions/EXECUTION-NAME:cancel

Ganti kode berikut:

  • ACCESS_TOKEN: token akses yang valid untuk akun yang memiliki izin IAM untuk membatalkan eksekusi 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: nama tugas.
  • EXECUTION-NAME: nama eksekusi tugas.
  • REGION: Google Cloud region tugas.
  • PROJECT_ID: Google Cloud Project ID

Menghapus eksekusi tugas

Anda dapat menghapus eksekusi tugas, meskipun sedang dijalankan. Jika sebuah eksekusi dihapus, eksekusi akan berhenti dilanjutkan. Untuk mengetahui detailnya, lihat Menghapus eksekusi tugas.

Langkah berikutnya

Setelah Anda menyelesaikan eksekusi tugas, Anda dapat melakukan tahapan berikut: