Avant de passer à la dernière version du SDK des services App Engine, consultez la présentation de la migration.
Vous pouvez migrer automatiquement vers Cloud Tasks en mettant à jour le SDK des services App Engine vers la dernière version. Une fois la mise à niveau effectuée, le SDK redirige automatiquement les appels PushQueue vers les API frontend Cloud Tasks. Cloud Tasks conserve vos files d'attente et vos tâches existantes. Aucune migration supplémentaire n'est donc requise.
En arrière-plan, le SDK mis à jour utilise les API Cloud Tasks pour maintenir la parité des fonctionnalités avec celles de Task Queues. Le SDK est compatible avec les éléments suivants :
- Création de tâches par lot : le SDK utilise des API par lot pour permettre d'ajouter jusqu'à 100 tâches en un seul appel.
- Tentatives d'exécution au niveau de la tâche : le SDK est compatible avec les configurations de tentatives d'exécution spécifiques aux tâches.
- Tâches transactionnelles : le SDK met en file d'attente les tâches dans les transactions Datastore. Pour maintenir la fiabilité, créez ou modifiez le fichier
cron.yaml.
Tarifs et quotas
La migration de vos files d'attente d'envoi vers Cloud Tasks peut avoir une incidence sur les tarifs et les quotas de votre application.
Tarifs
Consultez les tarifs de Cloud Tasks pour estimer votre coût mensuel avant la migration.
Comme pour Task Queues, l'envoi de requêtes à votre application App Engine avec une cible d'envoi Cloud Tasks est sans frais. Toutefois, contrairement à Task Queues, Cloud Tasks facture les opérations effectuées, telles que la création, la suppression ou la gestion de tâches. Cela peut entraîner un coût mensuel global plus élevé que celui de la file d'attente de tâches App Engine sans frais.
Quotas
Les requêtes Cloud Tasks sont également comptabilisées dans vos quotas de requêtes App Engine.
Comme Task Queues, Cloud Tasks dispose de quotas spécifiques au service. La migration vers Cloud Tasks modifiera probablement vos quotas.
Avant de commencer
Les sections suivantes décrivent les considérations relatives aux coûts et aux quotas avant de migrer les files d'attente d'envoi vers Cloud Tasks.
Assurez-vous d'avoir accès au code source App Engine.
Activez les API Cloud Tasks et Cloud Scheduler :
Pour vous assurer que le compte de service App Engine dispose des autorisations nécessaires pour permettre au SDK de distribuer des tâches à l'API Cloud Tasks, demandez à votre administrateur d'accorder au compte de service le rôle IAM Enfileur Cloud Tasks (
roles/cloudtasks.enqueuer) sur le projet.
Mettre à jour le SDK des services App Engine
Assurez-vous que votre application utilise la dernière version du SDK des services App Engine.
Mettez à jour la dépendance
google-appengine-apivers la versionv3.1.0b0ou une version ultérieure. Exemple :Flask==3.0.0 appengine-python-standard>=v3.1.0b0 google-cloud-tasks
Activer le routage Cloud Tasks
runtime: 3.14 service: my-service-b env_variables: APPENGINE_USE_CLOUDTASK_PUSH_QUEUE: "true"Déployez l'application :
gcloud app deployVérifiez les files d'attente d'envoi dans Cloud Tasks pour vous assurer que votre application utilise Cloud Tasks.
Configurer les tâches transactionnelles (facultatif)
Si votre application met en file d'attente des tâches dans les transactions Datastore, le SDK s'appuie sur un job Cron interne pour s'assurer que toutes les tâches qui ne parviennent pas à être mises en file d'attente lors de la validation du datastore sont finalement traitées.
Pour gérer les tâches transactionnelles de la file d'attente d'envoi, créez ou mettez à jour votre fichier cron.yaml afin d'appeler régulièrement le processeur interne. Exemple :
cron:
- description: "Process push queue transactional tasks"
url: /_ah/cloudtask/sweep
schedule: every 30 minutes # Change this based on the usage pattern
Étape suivante
- Documentation Cloud Tasks
- Bibliothèque cliente Cloud Tasks
- Documentation de référence sur l'API REST Cloud Tasks
- Documentation de référence sur l'API RPC Cloud Tasks overview
- Pour accéder à un tutoriel, consultez l'atelier de programmation Migrer des files d'attente d'envoi de tâches App Engine à Cloud Tasks.