Push-Warteschlangen zu Cloud Tasks migrieren, indem Sie auf das neueste SDK aktualisieren (Python)

Bevor Sie auf die neueste App Engine Services SDK-Version aktualisieren, lesen Sie die Migrationsübersicht.

Sie können automatisch zu Cloud Tasks migrieren, indem Sie Ihr App Engine Services SDK auf die neueste Version aktualisieren. Nach dem Upgrade leitet das SDK PushQueue-Aufrufe automatisch an die Cloud Tasks-Frontend-APIs weiter. In Cloud Tasks bleiben Ihre vorhandenen Aufgabenwarteschlangen und Aufgaben erhalten, sodass keine zusätzliche Migration erforderlich ist.

Im Hintergrund verwendet das aktualisierte SDK die Cloud Tasks APIs, um die Funktionsparität mit den Funktionen von Aufgabenwarteschlangen aufrechtzuerhalten. Das SDK unterstützt Folgendes:

  • Batch-Aufgabenerstellung: Das SDK verwendet Batch-APIs, um das Hinzufügen von bis zu 100 Aufgaben in einem einzigen Aufruf zu unterstützen.
  • Wiederholungen auf Aufgabenebene: Das SDK unterstützt aufgabenspezifische Wiederholungskonfigurationen.
  • Transaktionsaufgaben: Das SDK stellt Aufgaben in Datastore transaktionen in die Warteschlange. Um die Zuverlässigkeit aufrechtzuerhalten, erstellen oder ändern Sie die Datei cron.yaml.

Preise und Kontingente

Die Migration Ihrer Push-Warteschlangen zu Cloud Tasks kann sich auf die Preise und Kontingente für Ihre Anwendung auswirken.

Preise

Sehen Sie sich die Cloud Tasks-Preise an, um Ihre monatlichen Kosten vor der Migration zu schätzen.

Ähnlich wie bei Aufgabenwarteschlangen ist das Senden von Anfragen an Ihre App Engine-Anwendung mit einem Cloud Tasks-Push-Ziel kostenlos. Im Gegensatz zu Aufgabenwarteschlangen werden bei Cloud Tasks jedoch Vorgänge wie das Erstellen, Löschen oder Verwalten von Aufgaben in Rechnung gestellt. Dies kann zu höheren monatlichen Gesamtkosten führen als bei der kostenlosen App Engine-Aufgabenwarteschlange.

Kontingente

Cloud Tasks-Anfragen werden auch auf Ihre App Engine-Anfragekontingente angerechnet.

Wie bei Aufgabenwarteschlangen gibt es auch bei Cloud Tasks dienstspezifische Kontingente. Durch die Migration zu Cloud Tasks ändern sich wahrscheinlich Ihre Kontingente.

Hinweis

In den folgenden Abschnitten werden die Kosten- und Kontingentüberlegungen vor der Migration von Push-Warteschlangen zu Cloud Tasks erläutert.

  1. Achten Sie darauf, dass Sie Zugriff auf den App Engine-Quellcode haben.

  2. Aktivieren Sie die Cloud Tasks API und die Cloud Scheduler API:

    APIs aktivieren

  3. Bitten Sie Ihren Administrator, dem App Engine-Dienstkonto die erforderlichen Berechtigungen zu gewähren, damit das SDK Aufgaben an die Cloud Tasks API senden kann. Bitten Sie ihn, die Cloud Tasks-Warteschlangenmanager (roles/cloudtasks.enqueuer) IAM-Rolle für das Projekt zu gewähren.

App Engine Services SDK aktualisieren

  1. Achten Sie darauf, dass Ihre Anwendung die neueste Version des App Engine Services SDK verwendet.

    Aktualisieren Sie die Abhängigkeit google-appengine-api auf Version v3.1.0b0 oder höher. Beispiel:

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

    runtime: 3.14
    service: my-service-b
    
    env_variables:
      APPENGINE_USE_CLOUDTASK_PUSH_QUEUE: "true"
    
  3. Anwendung bereitstellen:

    gcloud app deploy
    
  4. Prüfen Sie die Push-Warteschlangen in Cloud Tasks um zu bestätigen, dass Ihre Anwendung Cloud Tasks verwendet.

Transaktionsaufgaben konfigurieren (optional)

Wenn Ihre Anwendung Aufgaben in Datenspeichertransaktionen in die Warteschlange stellt, verwendet das SDK einen internen Cronjob, um sicherzustellen, dass alle Aufgaben, die während des Datenspeicher-Commits nicht in die Warteschlange gestellt werden können, letztendlich verarbeitet werden.

Um transaktionale Aufgaben für Push-Warteschlangen zu verarbeiten, erstellen oder aktualisieren Sie die Datei cron.yaml, um den internen Prozessor regelmäßig aufzurufen. Beispiel:

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

Nächste Schritte