Memigrasikan push queue ke Cloud Tasks dengan mengupgrade ke SDK terbaru (Python)

Sebelum mengupgrade ke SDK layanan App Engine versi terbaru, tinjau ringkasan migrasi.

Anda dapat bermigrasi ke Cloud Tasks secara otomatis dengan mengupdate SDK layanan App Engine ke versi terbaru. Setelah Anda melakukan upgrade, SDK akan otomatis mengalihkan panggilan PushQueue ke API frontend Cloud Tasks untuk Anda. Cloud Tasks mempertahankan antrean dan tugas yang ada, sehingga tidak diperlukan migrasi tambahan.

Di balik layar, SDK yang diupdate menggunakan Cloud Tasks API untuk mempertahankan paritas fitur dengan fitur Task Queues. SDK ini mendukung hal berikut:

  • Pembuatan tugas batch: SDK menggunakan API batch untuk mendukung penambahan hingga 100 tugas dalam satu panggilan.
  • Coba lagi tingkat tugas: SDK mendukung konfigurasi coba lagi khusus tugas.
  • Tugas transaksional: SDK mengantrekan tugas dalam transaksi Datastore. Untuk menjaga keandalan, buat atau ubah file cron.yaml.

Harga dan kuota

Memigrasikan push queue ke Cloud Tasks dapat memengaruhi harga dan kuota untuk aplikasi Anda.

Harga

Tinjau harga Cloud Tasks untuk memperkirakan biaya bulanan Anda sebelum melakukan migrasi.

Mirip dengan Task Queue, mengirim permintaan ke aplikasi App Engine Anda dengan target push Cloud Tasks tidak dikenai biaya. Namun, tidak seperti Task Queue, Cloud Tasks mengenakan biaya untuk operasi yang dilakukan, seperti membuat, menghapus, atau mengelola tugas. Hal ini dapat menyebabkan biaya bulanan keseluruhan yang lebih tinggi dibandingkan dengan Task Queue App Engine tanpa biaya.

Kuota

Permintaan Cloud Tasks juga dihitung dalam kuota permintaan App Engine Anda.

Seperti Task Queue, Cloud Tasks memiliki kuota khusus layanan. Memigrasikan ke Cloud Tasks kemungkinan akan mengubah kuota Anda.

Sebelum memulai

Bagian berikut membahas pertimbangan biaya dan kuota sebelum memigrasikan push queue ke Cloud Tasks.

  1. Pastikan Anda memiliki akses ke kode sumber App Engine.

  2. Aktifkan Cloud Tasks dan Cloud Scheduler API:

    Aktifkan API

  3. Untuk memastikan akun layanan App Engine memiliki izin yang diperlukan agar SDK dapat mengirim tugas ke Cloud Tasks API, minta administrator untuk memberikan peran IAM Penyisip Cloud Tasks (roles/cloudtasks.enqueuer) di project.

Mengupdate SDK layanan App Engine

  1. Pastikan aplikasi Anda menggunakan SDK layanan App Engine versi terbaru.

    Update dependensi google-appengine-api ke versi v3.1.0b0 atau yang lebih tinggi. Contoh:

    Flask==3.0.0
    appengine-python-standard>=v3.1.0b0
    google-cloud-tasks
  2. Mengaktifkan perutean Cloud Tasks

    runtime: 3.14
    service: my-service-b
    
    env_variables:
      APPENGINE_USE_CLOUDTASK_PUSH_QUEUE: "true"
    
  3. Men-deploy aplikasi Anda:

    gcloud app deploy
    
  4. Verifikasi antrean push di Cloud Tasks untuk memverifikasi bahwa aplikasi Anda menggunakan Cloud Tasks.

Mengonfigurasi tugas transaksional (opsional)

Jika aplikasi Anda mengantrekan tugas dalam transaksi Datastore, SDK mengandalkan cron job internal untuk memastikan bahwa setiap tugas yang gagal diantrekan selama commit datastore akhirnya diproses.

Untuk menangani tugas transaksional push queue, buat atau perbarui file cron.yaml Anda untuk memanggil pemroses internal secara berkala. Contoh:

cron:
- description: "Process push queue transactional tasks"
  url: /_ah/cloudtask/sweep
  schedule: every 30 minutes # Change this based on the usage pattern

Langkah berikutnya