Membuat tugas Cloud Tasks

Anda dapat menggunakan Cloud Tasks untuk membuat item kerja asinkron yang disebut tugas. Dokumen ini menunjukkan cara membuat tugas target HTTP dan tugas App Engine.

Tugas target HTTP adalah permintaan yang diteruskan ke pekerja yang berada di endpoint HTTP generik mana pun dengan alamat IP eksternal seperti Cloud Run, Google Kubernetes Engine, Compute Engine, atau server web lokal.

Untuk target App Engine, Cloud Tasks meneruskan permintaan tugas ke pengendali dalam App Engine. Semua antrean yang menargetkan handler App Engine harus memiliki aplikasi App Engine. Handler harus berjalan di region tempat aplikasi App Engine berjalan. Region ini juga berfungsi sebagai parameter REGION untuk permintaan Cloud Tasks Anda.

Anda dapat membuat tugas target HTTP dengan cara berikut:

  • Di konsol Google Cloud
  • Dengan menggunakan Google Cloud CLI di terminal atau Cloud Shell
  • Dengan mengirim permintaan langsung ke Cloud Tasks API

Untuk mempelajari cara menambahkan tugas target HTTP ke antrean Cloud Tasks secara terprogram, lihat Membuat tugas target HTTP secara terprogram.

Anda dapat membuat tugas App Engine dengan cara berikut:

  • Dengan menggunakan Google Cloud CLI di terminal atau Cloud Shell
  • Dengan mengirim permintaan langsung ke Cloud Tasks API

Untuk mempelajari cara menambahkan tugas App Engine ke antrean Cloud Tasks secara terprogram, lihat Membuat tugas App Engine secara terprogram.

Sebelum memulai

Pastikan Anda telah membuat antrean Cloud Tasks. Untuk mengetahui informasi selengkapnya, lihat Membuat antrean Cloud Tasks.

Membuat tugas target HTTP

Saat membuat tugas, Anda dapat menentukan nama tugas. Jika namanya identik dengan nama tugas yang ada atau tugas yang dihapus atau diselesaikan baru-baru ini, panggilan akan gagal. Jika Anda tidak menentukan nama tugas, ID tugas unik acak akan dibuat.

Karena ada biaya pencarian tambahan untuk mengidentifikasi nama tugas duplikat, tugas yang dibuat dengan ID yang ditentukan pengguna memiliki latensi yang meningkat secara signifikan. Sebaiknya gunakan string hash untuk ID tugas atau untuk awalan ID tugas. Untuk mengetahui informasi selengkapnya, lihat Deduplikasi tugas.

Konsol

  1. Di konsol Google Cloud , buka halaman Cloud Tasks > Queues.

    Buka Antrean

  2. Klik nama antrean tempat Anda ingin menambahkan tugas.

  3. Klik Buat tugas HTTP.

  4. Atau, tentukan Task name.

  5. Untuk URL, tentukan URL yang sepenuhnya memenuhi syarat yang akan dikirimkan permintaan. Jalur harus diawali dengan http:// atau https://—misalnya: https://www.example.com.

  6. Secara opsional, tentukan metode HTTP yang akan digunakan untuk permintaan. Defaultnya adalah POST.

  7. (Opsional) Untuk Isi permintaan, berikan data isi HTTP yang akan dikirim ke pekerja yang memproses tugas.

  8. Anda dapat menentukan satu atau beberapa header permintaan HTTP dengan mengklik Tambahkan header.

  9. Untuk Auth header, pilih salah satu opsi otorisasi berikut untuk menentukan cara permintaan yang dikirim ke target diautentikasi saat mengeksekusi tugas:

    • Tidak Ada—tidak ada header, untuk endpoint publik tanpa otorisasi
    • Tambahkan token OAuth—umumnya digunakan untuk Google API yang dihosting di *.googleapis.com
    • Tambahkan token OIDC—digunakan untuk panggilan endpoint pihak ketiga dan Google Cloud , dengan pengecualian Google API yang dihosting di *.googleapis.com
  10. Jika berlaku, untuk Akun layanan, berikan email akun layanan yang akan digunakan untuk membuat token otorisasi yang disertakan dalam permintaan yang dikirim ke target saat menjalankan tugas. Akun layanan harus berada dalam project yang sama dengan antrean. Pemanggil harus memiliki izin iam.serviceAccounts.actAs untuk akun layanan.

  11. Jika perlu, dan jika berlaku, tentukan Audiens untuk membatasi jenis tindakan atau penerima token otorisasi.

  12. Klik Create.

Tugas Anda akan tercantum di halaman Detail antrean.

gcloud

Untuk membuat tugas target HTTP dan menambahkannya ke antrean yang ada, gunakan perintah gcloud tasks create-http-task.

gcloud tasks create-http-task \
    --queue=QUEUE_ID \
    --url=URL \
    --location=REGION \
    --project=PROJECT_ID \
    --oidc-service-account-email=SERVICE_ACCOUNT_EMAIL

Ganti kode berikut:

  • QUEUE_ID: nama antrean tempat tugas akan ditambahkan.
  • URL: URL yang sepenuhnya memenuhi syarat yang akan dikirimkan permintaan. Jalur harus diawali dengan http:// atau https://—misalnya: https://www.example.com.

  • REGION: optional. Region tempat antrean di-deploy—misalnya, us-central1.

  • PROJECT_ID: optional. Project ID projectGoogle Cloud tempat tugas akan dibuat.

  • SERVICE_ACCOUNT_EMAIL: optional. Email akun layanan yang digunakan untuk membuat token otorisasi yang disertakan dalam permintaan yang dikirim ke target saat menjalankan tugas. Akun layanan harus berada dalam project yang sama dengan antrean. Pemanggil harus memiliki izin iam.serviceAccounts.actAs untuk akun layanan.

    Untuk membuat token akses OAuth2, bukan token OpenID Connect, ganti tanda --oidc-service-account-email dengan --oauth-service-account-email untuk menentukan email akun layanan.

Setelah membuat tugas, Anda akan melihat pesan konfirmasi dengan nama resource lengkap dari tugas yang dibuat.

REST

Untuk membuat tugas target HTTP dan menambahkannya ke antrean yang ada, gunakan metode projects.locations.queues.tasks.create.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: wajib. Project ID dari project Google Cloud tempat tugas akan dibuat.
  • REGION: wajib. region tempat antrean di-deploy—misalnya, us-central1.
  • QUEUE_ID: wajib. ID antrean tempat tugas akan ditambahkan.
  • URL: wajib. URL yang sepenuhnya memenuhi syarat yang akan dikirimi permintaan. String ini harus diawali dengan http:// atau https://—misalnya: https://www.example.com.
  • SERVICE_ACCOUNT_EMAIL: opsional. Email akun layanan yang digunakan untuk membuat token otorisasi yang disertakan dalam permintaan yang dikirim ke target saat menjalankan tugas. Akun layanan harus berada di project yang sama dengan antrean. Pemanggil harus memiliki izin iam.serviceAccounts.actAs untuk akun layanan.

    Untuk membuat token akses OAuth2, bukan token OpenID Connect, ganti kolom oidcToken dengan oauthToken untuk menentukan email akun layanan.

  • SCHEDULE_TIME: optional. Waktu saat tugas dijadwalkan untuk dicoba, dalam format RFC 3339—misalnya, 2026-10-02T15:01:23Z. Jika waktu tidak ditetapkan atau sudah berlalu, Cloud Tasks akan menyetelnya ke waktu saat ini.

Meminta isi JSON:

{
  "task": {
    "httpRequest": {
      "url": "URL",
      "httpMethod": "POST",
      "oidcToken": {
        "serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL"
      }
    },
    "scheduleTime": "SCHEDULE_TIME"
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Jika berhasil, isi respons akan memuat instance Task yang baru dibuat.

{
  "name": "projects/PROJECT_ID/locations/REGION/queues/QUEUE_ID/tasks/TASK_ID",
  "httpRequest": {
    "url": "URL",
    "httpMethod": "POST",
    "headers": {
      "User-Agent": "Google-Cloud-Tasks"
    },
    "oidcToken": {
      "serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL",
      "audience": "URL"
    }
  },
  "scheduleTime": "SCHEDULE_TIME",
  "createTime": "2026-04-30T19:11:50Z",
  "dispatchDeadline": "600s",
  "view": "BASIC"
}

Membuat tugas App Engine

Saat membuat tugas, Anda dapat menentukan nama tugas. Jika namanya identik dengan nama tugas yang ada atau tugas yang dihapus atau diselesaikan baru-baru ini, panggilan akan gagal. Jika Anda tidak menentukan nama tugas, ID tugas unik acak akan dibuat.

Karena ada biaya pencarian tambahan untuk mengidentifikasi nama tugas duplikat, tugas yang dibuat dengan ID yang ditentukan pengguna memiliki latensi yang meningkat secara signifikan. Sebaiknya gunakan string hash untuk ID tugas atau untuk awalan ID tugas. Untuk mengetahui informasi selengkapnya, lihat Deduplikasi tugas.

gcloud

Untuk membuat tugas App Engine dan menambahkannya ke antrean yang ada, gunakan perintah gcloud tasks create-app-engine-task.

gcloud tasks create-app-engine-task \
    --queue=QUEUE_ID \
    --relative-uri=RELATIVE_URI \
    --location=REGION \
    --project=PROJECT_ID \
    --routing=KEY:VALUE

Ganti kode berikut:

  • QUEUE_ID: nama antrean tempat tugas akan ditambahkan.
  • RELATIVE_URI: URI relatif permintaan. Jalur harus dimulai dengan garis miring (/). Jika tidak ditentukan, jalur root akan digunakan (/).
  • REGION: optional. Region tempat antrean di-deploy. Jika tidak ditentukan, lokasi aplikasi App Engine project saat ini akan digunakan.
  • PROJECT_ID: optional. Project ID projectGoogle Cloud tempat tugas akan dibuat.
  • KEY:VALUE: opsional. Rute yang akan digunakan untuk tugas ini dengan KEY adalah setidaknya salah satu dari: service, version, atau instance. Kunci yang tidak ada akan menggunakan perutean default.

Setelah membuat tugas, Anda akan melihat pesan konfirmasi dengan nama resource lengkap dari tugas yang dibuat.

REST

Untuk membuat tugas App Engine dan menambahkannya ke antrean yang ada, gunakan metode projects.locations.queues.tasks.create.

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: wajib. Project ID dari project Google Cloud tempat tugas akan dibuat.
  • REGION: wajib. region tempat antrean di-deploy.
  • QUEUE_ID: wajib. ID antrean tempat tugas akan ditambahkan.
  • RELATIVE_URI: wajib. URI relatif permintaan. Jalur harus diawali dengan garis miring (/). Jika tidak ditentukan, jalur root akan digunakan (/).
  • SERVICE: optional. Layanan App Engine yang akan memproses tugas. Secara default, tugas dikirim ke layanan yang merupakan layanan default saat tugas dicoba.
  • VERSION: optional. Versi App Engine yang akan memproses tugas. Secara default, tugas dikirim ke versi yang merupakan versi default saat tugas dicoba.
  • SCHEDULE_TIME: optional. Waktu saat tugas dijadwalkan untuk dicoba, dalam format RFC 3339—misalnya, 2026-10-02T15:01:23Z. Jika waktu tidak ditetapkan atau sudah berlalu, Cloud Tasks akan menyetelnya ke waktu saat ini.

Meminta isi JSON:

{
  "task": {
    "appEngineHttpRequest": {
      "httpMethod": "POST",
      "relativeUri": "RELATIVE_URI",
      "appEngineRouting": {
        "service": "SERVICE",
        "version": "VERSION"
      }
    },
    "scheduleTime": "SCHEDULE_TIME"
  }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Jika berhasil, isi respons akan memuat instance Task yang baru dibuat.

{
  "name": "projects/PROJECT_ID/locations/REGION/queues/QUEUE_ID/tasks/TASK_ID",
  "appEngineHttpRequest": {
    "httpMethod": "POST",
    "relativeUri": "RELATIVE_URI",
    "appEngineRouting": {
      "service": "SERVICE",
      "version": "VERSION",
      "host": "VERSION.SERVICE.PROJECT_ID.appspot.com"
    }
  },
  "scheduleTime": "SCHEDULE_TIME",
  "createTime": "2026-04-30T19:11:50Z",
  "dispatchDeadline": "600s",
  "view": "BASIC"
}

Membuat batch tugas

Anda dapat membuat batch tugas target dan menambahkan batch ke antrean yang ada dengan menggunakan metode projects.locations.queues.tasks.batchCreate untuk membuat daftar permintaan.

Perhatikan hal berikut:

  • Semua tugas harus ditambahkan ke antrean yang sama.

  • Ada batasan jumlah tugas yang dapat dibuat dalam satu batch. Untuk mengetahui informasi selengkapnya, lihat Kuota dan batas.

  • Permintaan batch, yang menggabungkan operasi individual ke dalam satu permintaan, tidak bersifat atomik karena beberapa operasi yang ada dalam batch dapat gagal, sementara operasi lainnya berhasil.

  • Anda juga dapat menghapus batch tugas. Untuk mengetahui informasi selengkapnya, lihat Menghapus batch tugas dari antrean.

Tugas HTTP

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: wajib. Project ID project Google Cloud tempat tugas akan dibuat.
  • REGION: wajib. region tempat antrean di-deploy—misalnya, us-central1.
  • QUEUE_ID: wajib. ID antrean tempat tugas akan ditambahkan.
  • URL: wajib. URL yang sepenuhnya memenuhi syarat yang akan dikirimi permintaan. String ini harus diawali dengan http:// atau https://—misalnya: https://www.example.com.
  • SERVICE_ACCOUNT_EMAIL: opsional. Email akun layanan yang digunakan untuk membuat token otorisasi yang disertakan dalam permintaan yang dikirim ke target saat menjalankan tugas. Akun layanan harus berada di project yang sama dengan antrean. Pemanggil harus memiliki izin iam.serviceAccounts.actAs untuk akun layanan.

    Untuk membuat token akses OAuth2, bukan token OpenID Connect, ganti kolom oidcToken dengan oauthToken untuk menentukan email akun layanan.

Isi permintaan berisi daftar permintaan.

Meminta isi JSON:

{
  "requests": [
    {
      "task": {
        "httpRequest": {
          "url": "URL",
          "httpMethod": "POST",
          "oidcToken": {
            "serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL"
          }
        },
        "scheduleTime": "SCHEDULE_TIME"
      }
    }
  ]
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Jika berhasil, isi respons berisi instance resource Operation.

{
  "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.tasks.v2beta3.BatchCreateTasksMetadata"
  },
  "done": false
}

Tugas App Engine

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: wajib. Project ID dari project Google Cloud tempat tugas akan dibuat.
  • REGION: wajib. region tempat antrean di-deploy.
  • QUEUE_ID: wajib. ID antrean tempat tugas akan ditambahkan.
  • RELATIVE_URI: wajib. URI relatif permintaan. Jalur harus diawali dengan garis miring (/). Jika tidak ditentukan, jalur root akan digunakan (/).
  • SERVICE: optional. Layanan App Engine yang akan memproses tugas. Secara default, tugas dikirim ke layanan yang merupakan layanan default saat tugas dicoba.
  • VERSION: optional. Versi App Engine yang akan memproses tugas. Secara default, tugas dikirim ke versi yang merupakan versi default saat tugas dicoba.
  • SCHEDULE_TIME: optional. Waktu saat tugas dijadwalkan untuk dicoba, dalam format RFC 3339—misalnya, 2026-10-02T15:01:23Z. Jika waktu tidak ditetapkan atau sudah berlalu, Cloud Tasks akan menyetelnya ke waktu saat ini.

Isi permintaan berisi daftar permintaan.

Meminta isi JSON:

{
  "requests": [
    {
      "task": {
        "appEngineHttpRequest": {
          "httpMethod": "POST",
          "relativeUri": "RELATIVE_URI",
          "appEngineRouting": {
            "service": "SERVICE",
            "version": "VERSION"
          }
        },
        "scheduleTime": "SCHEDULE_TIME"
      }
    }
  ]
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Jika berhasil, isi respons berisi instance resource Operation.

{
  "name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.tasks.v2beta3.BatchCreateTasksMetadata"
  },
  "done": false
}

Langkah berikutnya