Migrazione delle code in modalità push a Cloud Tasks eseguendo l'upgrade all'SDK più recente (Python)

Prima di eseguire l'upgrade all'ultima versione dell'SDK dei servizi App Engine, consulta la panoramica della migrazione.

Puoi eseguire la migrazione a Cloud Tasks automaticamente aggiornando l'SDK dei servizi App Engine all'ultima versione. Dopo l'upgrade, l'SDK reindirizza automaticamente le chiamate PushQueue alle API frontend di Cloud Tasks. Cloud Tasks conserva le code di attività e le attività esistenti, quindi non è richiesta alcuna migrazione aggiuntiva.

Dietro le quinte, l'SDK aggiornato utilizza le API Cloud Tasks per mantenere la parità delle funzionalità con le funzionalità delle code di attività. L'SDK supporta quanto segue:

  • Creazione di attività batch: l'SDK utilizza le API batch per supportare l'aggiunta di un massimo di 100 attività in una singola chiamata.
  • Ripetizioni a livello di attività: l'SDK supporta configurazioni di ripetizione specifiche per le attività.
  • Attività transazionali: l'SDK mette in coda le attività all'interno delle transazioni Datastore. Per mantenere l'affidabilità, crea o modifica il file cron.yaml.

Prezzi e quote

La migrazione delle code in modalità push a Cloud Tasks potrebbe influire sui prezzi e sulle quote della tua app.

Prezzi

Prima di eseguire la migrazione, consulta i prezzi di Cloud Tasks per stimare il costo mensile.

Analogamente alle code di attività, l'invio di richieste alla tua app App Engine con una destinazione push di Cloud Tasks è senza costi. Tuttavia, a differenza delle code di attività, Cloud Tasks addebita le operazioni eseguite, come la creazione, l'eliminazione o la gestione delle attività. Ciò potrebbe comportare un costo mensile complessivo più elevato rispetto alla coda di attività di App Engine complementare.

Quote

Anche le richieste Cloud Tasks vengono conteggiate ai fini delle quote delle richieste di App Engine.

Come le code di attività, Cloud Tasks ha quote specifiche per il servizio. La migrazione a Cloud Tasks probabilmente modificherà le tue quote.

Prima di iniziare

Le sezioni seguenti illustrano le considerazioni sui costi e sulle quote prima di eseguire la migrazione delle code in modalità push a Cloud Tasks.

  1. Assicurati di avere accesso al codice sorgente di App Engine.

  2. Abilita le API Cloud Tasks e Cloud Scheduler:

    Abilita le API

  3. Per assicurarti che il account di servizio di App Engine disponga delle autorizzazioni necessarie per consentire all'SDK di inviare le attività all'API Cloud Tasks, chiedi all'amministratore di concedere il ruolo IAM Cloud Tasks Enqueuer (roles/cloudtasks.enqueuer) sul progetto.

Aggiorna l'SDK dei servizi App Engine

  1. Assicurati che la tua applicazione utilizzi l'ultima versione dell'SDK dei servizi App Engine.

    Aggiorna la dipendenza google-appengine-api alla versione v3.1.0b0 o successive. Ad esempio:

    Flask==3.0.0
    appengine-python-standard>=v3.1.0b0
    google-cloud-tasks
  2. Abilita il routing di Cloud Tasks

    runtime: 3.14
    service: my-service-b
    
    env_variables:
      APPENGINE_USE_CLOUDTASK_PUSH_QUEUE: "true"
    
  3. Esegui il deployment dell'app:

    gcloud app deploy
    
  4. Verifica le code in modalità push in Cloud Tasks per verificare che l'app utilizzi Cloud Tasks.

Configura le attività transazionali (facoltativo)

Se la tua app mette in coda le attività all'interno delle transazioni Datastore, l'SDK si basa su un cron job interno per garantire che le attività che non vengono messe in coda durante il commit di Datastore vengano elaborate.

Per gestire le attività transazionali delle coda in modalità push, crea o aggiorna il file cron.yaml in modo da chiamare periodicamente il processore interno. Ad esempio:

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

Passaggi successivi