Anda dapat menggunakan Cloud Tasks untuk mengantrekan alur kerja dan menjalankannya secara asinkron.
Cloud Tasks menawarkan kontrol berikut:
- Menjadwalkan waktu pengiriman tertentu
- Mengelola rasio penayangan
- Mengonfigurasi perilaku percobaan ulang
- Mengakses dan mengelola setiap tugas dalam antrean
- Mengaktifkan penghapusan duplikat tugas
Kontrol ini dapat berguna, misalnya, untuk mengelola permintaan yang memicu alur kerja dan dapat melebihi batas Alur Kerja secara tidak terduga. Dengan mengonfigurasi antrean Cloud Tasks dengan batas kapasitas dan percobaan ulang, Anda dapat memastikan bahwa semua permintaan tersebut menghasilkan eksekusi alur kerja.
Untuk informasi selengkapnya, lihat Memahami Cloud Tasks.
Perhatikan hal berikut:
Anda harus mendasarkan batas kapasitas pada batas Alur Kerja untuk permintaan tulis Execution API. Jika perlu, Anda dapat meminta peningkatan untuk sebagian besar kuota di konsol Google Cloud. Cari tahu lebih lanjut permintaan penambahan kuota.
Cloud Tasks dirancang untuk memberikan pengiriman "setidaknya sekali"; tetapi, Alur Kerja tidak memastikan pemrosesan tepat satu kali untuk permintaan duplikat dari Cloud Tasks.
Anda dapat menghapus penundaan eksekusi dan memaksimalkan throughput dengan mengaktifkan backlog eksekusi di Alur Kerja. Eksekusi yang tertunda akan otomatis dijalankan segera setelah kuota konkurensi eksekusi tersedia. Untuk mengetahui informasi selengkapnya, lihat Mengelola backlog eksekusi.
Sebelum memulai
- Jika Anda belum memiliki alur kerja yang ingin dimasukkan ke dalam antrean, buat alur kerja.
-
Enable the Cloud Tasks API.
Mengantrekan tugas untuk menjalankan alur kerja
Buat akun layanan agar Cloud Tasks dapat membuat permintaan ke Workflows API:
gcloud iam service-accounts create SERVICE_ACCOUNT_NAME
Ganti
SERVICE_ACCOUNT_NAME
dengan nama yang berjumlah antara 6 dan 30 karakter. Nama dapat berisi karakter alfanumerik huruf kecil dan tanda hubung. Setelah membuat akun layanan, Anda tidak dapat mengubah namanya.Agar akun utama yang akan menjalankan perintah Cloud Tasks Anda dapat bertindak sebagai akun layanan Identity and Access Management (IAM), berikan peran yang memungkinkan akun utama meniru identitas akun layanan.
Berikan peran workflows.invoker kepada akun layanan baru Anda agar akun tersebut memiliki izin untuk memicu alur kerja Anda:
gcloud projects add-iam-policy-binding PROJECT_NAME \ --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_NAME.iam.gserviceaccount.com \ --role roles/workflows.invoker
Ganti kode berikut:
PROJECT_NAME
: nama project Google Cloud Anda.SERVICE_ACCOUNT_NAME
: nama akun layanan yang Anda buat sebelumnya.
Jika Anda belum memiliki antrean Cloud Tasks, buat.
Buat tugas yang menargetkan endpoint HTTP alur kerja Anda, menggunakan akun layanan yang sebelumnya Anda buat untuk mengautentikasi:
gcloud tasks create-http-task \ --queue="QUEUE_ID" \ --url="https://workflowexecutions.googleapis.com/v1/projects/PROJECT_NAME/locations/REGION_NAME/workflows/WORKFLOW_NAME/executions" \ --body-content="{\"argument\": \"DOUBLE_ESCAPED_JSON_STRING\"}" \ --oauth-service-account-email="SERVICE_ACCOUNT_NAME@PROJECT_NAME.iam.gserviceaccount.com"
Ganti kode berikut:
QUEUE_ID
: ID yang Anda tetapkan ke antrean Cloud Tasks; misalnya,my-queue
.PROJECT_NAME
: nama project Google Cloud Anda.REGION_NAME
: region tempat alur kerja Anda berada, sepertius-central1
.WORKFLOW_NAME
: nama alur kerja yang ingin Anda buat tugasnya.DOUBLE_ESCAPED_JSON_STRING
: encoding JSON dari argumen apa pun yang Anda teruskan. Tanda kutip ganda di dalam string yang dikutip di-escape menggunakan garis miring terbalik (\). Misalnya:--body-content="{\"argument\": \"{\\\"foo\\\": \\\"bar\\\"}\"}"
SERVICE_ACCOUNT_NAME
: nama akun layanan yang sebelumnya Anda buat.
Tugas Anda akan dibuat dan ditambahkan ke antrean Cloud Tasks. Tugas akan tetap ada dalam antrean hingga eksekusi alur kerja dimulai dan menampilkan kode status HTTP
2xx
. Pada saat itu, Cloud Tasks akan menganggap tugas selesai.
Langkah selanjutnya
- Tutorial: Menggunakan antrean Cloud Tasks untuk melakukan buffering eksekusi alur kerja Anda
- Mengelola antrean dan tugas
- Mengelola backlog eksekusi
- Teruskan argumen runtime dalam permintaan eksekusi