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 votre 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 coulisses, le SDK mis à jour utilise les API Cloud Tasks pour maintenir la parité des fonctionnalités avec les fonctionnalités 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 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 des 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.
Dans votre fichier
pom.xml, mettez à jour le SDK des services App Engine vers la versionv5.2.0-betaou une version ultérieure.com.google.appengine appengine-api-1.0-sdk v5.2.0-beta Activer le routage Cloud Tasks
runtime: java25 service: my-service-b env_variables: APPENGINE_USE_CLOUDTASK_PUSH_QUEUE: "true"Mettez à jour la dépendance du SDK App Engine dans votre fichier
pom.xmlvers la versionv5.2.0-betaou une version ultérieure.Si votre application utilise une configuration XML (
appengine-web.xml) :<appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> <service>my-java-service-b</service> <runtime>java25</runtime> <env-variables> <env-var name="APPENGINE_USE_CLOUDTASK_PUSH_QUEUE" value="true" /> </env-variables> </appengine-web-app>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 des 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
Ajoutez le mappage d'URL dans votre fichier web.xml pour utils.servlet.SweeperServlet ou utils.servlet.jakarta.SweeperServlet pour les environnements d'exécution Java 17/21 Jakarta EE.
<servlet>
<servlet-name>cloudtask_sweep</servlet-name>
<servlet-class>com.google.apphosting.utils.servlet.SweeperServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>cloudtask_sweep</servlet-name>
<url-pattern>/_ah/cloudtask/sweep</url-pattern>
</servlet-mapping>
É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