Meskipun Anda dapat menggunakan file queue.yaml
untuk mengelola antrean, mencampur metode pengelolaan antrean dapat menyebabkan hasil yang tidak terduga. Panduan ini menjelaskan risiko mencampuradukkan metode ini dan menunjukkan cara mengatasi masalah konfigurasi umum.
Cloud Tasks API menyediakan antarmuka independen ke layanan App Engine Task Queue. Dengan menggunakan antarmuka ini, Anda dapat mengelola antrean melalui konsol Google Cloud atau Google Cloud CLI. Antrean yang Anda buat dengan Cloud Tasks API dapat diakses dari SDK App Engine—kumpulan API khusus platform, alat mandiri, dan file runtime—dan antrean yang dibuat dengan SDK App Engine dapat diakses dari Cloud Tasks API.
Untuk mempertahankan kompatibilitas, Anda dapat menggunakan queue.yaml, file konfigurasi untuk
App Engine SDK, guna membuat dan mengonfigurasi antrean untuk
Cloud Tasks API. Namun, mengelola antrean menggunakan file ini serta Cloud Tasks API dapat menyebabkan masalah yang dijelaskan dalam panduan ini.
Sebelum memulai
Jika Anda baru menggunakan Cloud Tasks atau App Engine, gunakan
Cloud Tasks API secara eksklusif untuk mengelola antrean dan hindari penggunaan
queue.yaml. Metode pengelolaan antrean Cloud Tasks memberi Anda lebih banyak opsi untuk membuat, memperbarui, dan menghapus antrean.
Jika Anda adalah pengguna queue.yaml yang sudah ada, pertimbangkan untuk beralih ke metode pengelolaan antrean Cloud Tasks hanya jika Anda memahami risiko mencampur metode pengelolaan antrean.
Menerapkan metode pengelolaan antrean
Untuk mencegah pencampuran metode pengelolaan antrean, Anda dapat membuat aplikasi web atau alat command line untuk membuat, memperbarui, dan menghapus antrean. Apakah alat tersebut menggunakan metode pengelolaan antrean Cloud Tasks atau queue.yaml adalah detail implementasi yang tidak perlu diketahui pengguna. Dengan mewajibkan
penggunaan alat ini, Anda dapat memastikan tidak ada pencampuran metode yang tidak disengaja.
Berikan peran Identity and Access Management (IAM) Admin Antrean Cloud Tasks ke alat dan mewajibkan pengguna untuk mengautentikasi. Untuk mengetahui informasi selengkapnya tentang
pengelolaan akses, lihat
Konfigurasi antrean aman.
Penundaan konfigurasi antrean
Perubahan konfigurasi antrean dapat memerlukan waktu beberapa menit untuk diterapkan. Misalnya, setelah memanggil CreateQueue atau UpdateQueue, mungkin perlu waktu beberapa menit sebelum Anda dapat berhasil memanggil CreateTask di antrean tersebut.
Antrean default App Engine
Antrean App Engine bernama default menerima perlakuan khusus di App Engine SDK dan di Cloud Tasks API.
Kapan antrean default dibuat? | |
|---|---|
Jika antrean |
|
| Batasan apa yang diterapkan Cloud Tasks? | |
Untuk mempertahankan kompatibilitas dengan App Engine,
Cloud Tasks menerapkan batasan ini terkait antrean
|
|
Risiko mencampur metode pengelolaan antrean
Untuk layanan pokok, file queue.yaml bersifat definitif. Mengupload file
queue.yaml yang menghilangkan antrean yang ada dalam project Anda, terlepas dari cara
antrean tersebut dibuat, akan menonaktifkan atau
menjeda
antrean tersebut. Misalnya, jika Anda menggunakan Cloud Tasks API untuk memanggil
CreateQueue atau UpdateQueue, lalu mengupload file queue.yaml yang tidak menyertakan
antrean tersebut, antrean akan dinonaktifkan. Kemudian, Anda harus
melanjutkan antrean yang dinonaktifkan.
Mencampur metode pengelolaan antrean dapat menghasilkan perilaku yang tidak terduga. Misalnya, pertimbangkan skenario berikut:
Skenario 1
Anda memanggil CreateQueue untuk membuat antrean bernama cloud-tasks-queue, lalu
mengupload file queue.yaml dengan konten berikut:
queue:
- name: queue-yaml-queue
Hal ini menghasilkan status antrean berikut:
- Antrean bernama
cloud-tasks-queuedan antrean lain yang sudah ada sebelumnya berada dalam statusDISABLED. - Antrean bernama
queue-yaml-queueberada dalam statusRUNNING.
Skenario 2
Anda menggunakan Cloud Tasks API untuk menonaktifkan antrean, tetapi antrean tersebut muncul di file queue.yaml yang diupload. Antrean dilanjutkan.
Skenario 3
Anda menghapus antrean dengan metode DeleteQueue dan antrean tersebut kemudian muncul dalam file
queue.yaml. Upload queue.yaml mungkin gagal karena
nama antrean tidak dapat digunakan kembali selama beberapa hari
setelah dihapus.
Men-debug menggunakan log audit
Anda dapat memeriksa log audit Aktivitas Admin project dan mengambil histori perubahan konfigurasi antrean, termasuk pembuatan, update, dan penghapusan antrean.
Misalnya, jika upload queue.yaml menonaktifkan antrean yang ada, Anda dapat menjalankan perintah berikut untuk menampilkan pesan log Disabled queue QUEUE_NAME melalui metode com.google.appengine.legacy.queue_updated:
gcloud logging read \
'protoPayload.methodName=
(com.google.appengine.legacy.queue_created OR
com.google.appengine.legacy.queue_updated OR
google.cloud.tasks.v2.CloudTasks.CreateQueue OR
google.cloud.tasks.v2.CloudTasks.UpdateQueue OR
google.cloud.tasks.v2.CloudTasks.DeleteQueue)'
Untuk mengetahui informasi selengkapnya, lihat Membaca entri log.
Melanjutkan antrean yang dinonaktifkan oleh upload queue.yaml
Jika Anda mencampur metode pengelolaan antrean, mengupload file queue.yaml
dapat secara tidak sengaja menonaktifkan antrean yang dibuat melalui Cloud Tasks API.
Untuk melanjutkan antrean, Anda dapat memanggil ResumeQueue di antrean, atau menambahkannya ke queue.yaml dan menguploadnya.
Jika sebelumnya Anda menetapkan pemrosesan kustom
rate dalam konfigurasi queue.yaml, ResumeQueue akan mereset antrean ke rate default. Hal ini tercermin dalam kolom maxDispatchesPerSecond respons terhadap ResumeQueue.
Menyelesaikan masalah kuota
Jika Anda menggunakan queue.yaml untuk membuat antrean, project Anda memiliki kuota default untuk
jumlah maksimum antrean yang dapat Anda buat. Antrean yang dibuat menggunakan Cloud Tasks API juga memiliki
kuota default. Seperti dalam kasus lain, menggabungkan metode queue.yaml dan Cloud Tasks API dapat menghasilkan hasil yang tidak terduga.
Misalnya, saat Anda membuat antrean menggunakan queue.yaml, lalu menerima peningkatan kuota, jika Anda kemudian menggunakan Cloud Tasks API untuk membuat antrean tambahan, Anda mungkin menerima error kehabisan kuota. Untuk mengatasinya, Anda dapat mengelola kuota menggunakan konsol Google Cloud . Untuk mengetahui informasi selengkapnya, lihat
Mengelola kuota menggunakan konsol.