Ajouter une tâche à une file d'attente Cloud Tasks
Ce guide de démarrage rapide vous permet de tester les opérations de base à l'aide des files d'attente Cloud Tasks via l'API Cloud Tasks.
Les exemples de ce guide de démarrage rapide ciblent les gestionnaires App Engine. Vous devez donc déployer une application App Engine. Si vous n'utilisez pas App Engine en tant que cible, vous n'avez pas besoin de déployer une application App Engine et vous pouvez désactiver n'importe quelle application App Engine existante.
Par exemple, si vous utilisez exclusivement un gestionnaire HTTP Target, aucune application App Engine n'est nécessaire. Dans le cas de cibles HTTP génériques, le service Cloud Tasks transfère la requête de tâche au nœud de calcul, situé sur n'importe quel point de terminaison HTTP générique, en fonction de la configuration de la tâche. Pour en savoir plus sur l'utilisation de cibles HTTP, consultez la page Créer des tâches HTTP Target.
Avant de commencer
Pour configurer votre environnement cloud pour ce guide de démarrage rapide, créez un projet Google Cloud et ajoutez une application App Engine avec la facturation activée. Si vous disposez d'un compte de facturation lorsque vous créez votre projet Google Cloud, la facturation est automatiquement activée.Découvrez comment gérer les projets Google Cloud, les applications App Engine et la facturation en général.
- Créez ou sélectionnez un projet Google Cloud:
Accéder à la page App Engine - Utilisez les boutons en haut à droite pour sélectionner un nom de projet existant ou en créer un.
- Notez l'ID du projet dans la liste déroulante située en haut à gauche. Il servira de paramètre pour vos requêtes Cloud Tasks.
- Ajoutez une application App Engine au projet :
- Sur la page Bienvenue dans App Engine, cliquez sur Créer une application.
- Sélectionnez une région pour votre application.
Cette région servira de paramètre "LOCATION_ID" pour les requêtes Cloud Tasks. Prenez-en note. Sachez que deux emplacements, appelés
europe-west
etus-central
dans les commandes App Engine, sont appelés respectivementeurope-west1
etus-central1
dans les commandes Cloud Tasks. - Sur la page Premiers pas, cliquez sur Suivant. Vous vous en occuperez plus tard. S'il s'agit d'un nouveau projet, l'environnement d'exécution est créé.
- Si la fenêtre pop-up Activer la facturation s'affiche, sélectionnez votre compte de facturation. Si vous ne possédez pas de compte de facturation, cliquez sur Créer un compte de facturation et suivez les instructions de l'assistant.
- Sur la page Étapes suivantes, cliquez simplement sur Je le ferai plus tard. Vous accéderez aux exemples et téléchargerez le SDK ultérieurement.
- Activez l'API Cloud Tasks.
Accéder à la page de l'API Cloud Tasks - Configurez l'authentification à l'API.
- Suivez les instructions pour créer un compte de service. Téléchargez le fichier avec la clé JSON associée au compte et stockez-le localement. La clé du compte de service autorise votre code local à accéder à Google Cloud de manière automatisée.
- Les exemples utilisent les bibliothèques clientes Google Cloud pour interagir avec App Engine. Vous devez donc définir une variable d'environnement pour pointer vers la clé que vous avez téléchargée et que la bibliothèque utilise pour authentifier et autoriser vos requêtes. Vous pouvez créer vos requêtes sans utiliser les bibliothèques clientes, mais elles vous aident à gérer les détails de la communication de bas niveau avec le serveur, y compris l'authentification.
- Installez et configurez la CLI gcloud. Vous pouvez ainsi accéder à l'outil
gcloud
.
Configurer l'exemple
Ces exemples fournissent un framework permettant d'essayer d'ajouter des tâches aux files d'attente Cloud Tasks via l'API Cloud Tasks .
C#
L'exemple C# se compose de deux applications, l'une (CreateAppEngineTask
) exécutée localement en tant qu'outil de ligne de commande pour créer et ajouter des tâches à la file d'attente, et l'autre (CloudTasks
) déployée sur l'environnement flexible App Engine en tant que nœud de calcul pour "traiter" la tâche.
Pour télécharger et installer l'exemple, procédez comme suit :
Assurez-vous que .NET Core SDK, version 2.0, ou une version plus récente, est installé.
Assurez-vous d'avoir initialisé et configuré l'outil
gcloud
pour utiliser le projet Google Cloud que vous avez créé ci-dessus.Clonez le dépôt de l'exemple d'application sur votre ordinateur local :
git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples
Accédez au répertoire qui contient l'exemple de code pour
CreateTask
:cd dotnet-docs-samples/cloudtasks/api/TasksSample/
Installez toutes les dépendances :
dotnet restore
Accédez au répertoire (
dotnet-docs-samples/cloudtasks/appengine/
) qui contient l'exemple de code pourCloudTasks
, puis installez toutes les dépendances:dotnet restore
Compilez l'application et préparez-la pour le déploiement :
dotnet publish
Déployez le service de nœud de calcul (
CloudTasks
) sur l'environnement flexible App Engine:gcloud app deploy .\bin\Debug\netcoreapp2.1\publish\app.yaml
Vérifiez que la page d'index fonctionne :
gcloud app browse
Votre navigateur ouvre
https://{YOUR_PROJECT_ID}.appspot.com/
et afficheHello, World!
.
Python
L'exemple Python se compose de deux fichiers, l'un (create_app_engine_queue_tasks.py
) exécuté localement en tant qu'outil de ligne de commande pour créer et ajouter des tâches à la file d'attente, et l'autre (main.py
) déployé sur App Engine en tant que nœud de calcul pour "traiter" la tâche.
Pour télécharger et installer l'exemple, procédez comme suit :
Clonez le dépôt de l'exemple d'application sur votre ordinateur local :
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git
Accédez au répertoire qui contient l'exemple de code :
cd python-docs-samples/appengine/flexible/tasks/
Installez toutes les dépendances :
pip install -r requirements.txt
Assurez-vous d'avoir initialisé et configuré l'outil
gcloud
pour utiliser le projet que vous avez créé précédemment.Déployez le service de nœud de calcul (
main.py
) sur App Engine:gcloud app deploy
Vérifiez que la page d'index fonctionne :
gcloud app browse
Votre navigateur ouvre
https://{YOUR_PROJECT_ID}.appspot.com/
et afficheHello, World!
.
Java
L'exemple d'application Java 8 se compose de deux fichiers, l'un (CreateTask.java
) exécuté localement en tant qu'outil de ligne de commande pour créer et ajouter des tâches à la file d'attente, et l'autre (TaskServlet.java
) déployé sur App Engine en tant que nœud de calcul pour "traiter" la tâche. Pour exécuter l'exemple en Java 11, consultez la section Exécution de code Java 11 de manière asynchrone.
Remarque : Pour utiliser l'exemple d'application Java, vous devez également disposer des composants supplémentaires répertoriés ci-dessous :
- Maven
- Composant app-engine-java pour la CLI gcloud
- Le plug-in App Engine Maven, qui a déjà été spécifié dans le fichier
pom.xml
fourni pour l'exemple
Pour en savoir plus sur ces composants, consultez les pages Utiliser Apache Maven et le plug-in App Engine et Objectifs et paramètres du plug-in Maven.
Pour télécharger et installer l'exemple, procédez comme suit :
Clonez le dépôt de l'exemple d'application sur votre ordinateur local :
git clone https://github.com/GoogleCloudPlatform/java-docs-samples.git
Accédez au répertoire de premier niveau pour l'exemple de tâches :
cd java-docs-samples/appengine-java8/tasks/quickstart/
Assurez-vous d'avoir initialisé et configuré l'outil
gcloud
pour utiliser le projet que vous avez créé précédemment.Créez et exécutez l'outil de ligne de commande local (
CreateTask.java
):mvn appengine:run
Déployez le service de nœud de calcul (
TaskServlet.java
) sur App Engine:mvn appengine:deploy
PHP
L'exemple PHP se compose de deux fichiers, l'un (/snippets/src/create_task.php
) exécuté localement en tant qu'outil de ligne de commande pour créer et ajouter des tâches à la file d'attente, et l'autre (/apps/handler/index.php
) déployé sur App Engine en tant que nœud de calcul pour "traiter" la tâche.
Pour télécharger et installer l'exemple, procédez comme suit :
Clonez le dépôt de l'exemple d'application sur votre ordinateur local :
git clone https://github.com/GoogleCloudPlatform/php-docs-samples
Accédez au répertoire de premier niveau pour l'exemple de tâches :
cd php-docs-samples/appengine/standard/tasks
Le répertoire
tasks
contient deux sous-répertoires :apps/handler
: contient le code du service de nœuds de calcul à déployer sur App Engine.snippets
: contient le code de l'outil de ligne de commande local.
Assurez-vous que Composer est installé. Si vous souhaitez l'utiliser localement, assurez-vous que
composer.phar
se trouve dans les deux sous-répertoires. Consultez la documentation sur Composer pour plus d'informations sur l'exécution locale ou globale.Dans le répertoire
snippets
, installez toutes les dépendances:composer install
ou, pour une exécution locale seulement :php composer.phar install
Dans le répertoire
apps/handler
, installez toutes les dépendances:composer install
ou, pour une exécution locale seulement :php composer.phar install
Assurez-vous d'avoir initialisé et configuré l'outil
gcloud
pour utiliser le projet Google Cloud que vous avez créé ci-dessus.À partir du répertoire
apps/handler
, déployez le service de nœud de calcul sur App Engine à l'aide de la commandegcloud app deploy
:gcloud app deploy
Vérifiez que l'application contenant le service est exécutée :
gcloud app browse
Votre navigateur ouvre
https://{YOUR_PROJECT_ID}.appspot.com/
et afficheHello, World!
.
Go
L'exemple Golang se compose de deux fichiers, l'un (tasks/create_task/create_task.go
) exécuté localement en tant qu'outil de ligne de commande pour créer et ajouter des tâches à la file d'attente, et l'autre (tasks/handle_task/handle_task.go
) déployé sur App Engine en tant que nœud de calcul pour "traiter" la tâche.
Pour télécharger et installer l'exemple, procédez comme suit :
Assurez-vous d'avoir installé le composant
gcloud
App Engine Go:gcloud components install app-engine-go
Assurez-vous d'avoir initialisé et configuré l'outil
gcloud
pour utiliser le projet que vous avez créé précédemment.Copiez le dépôt de l'exemple d'application sur votre ordinateur local :
go get github.com/GoogleCloudPlatform/golang-samples/appengine/go11x/tasks/...
Accédez au répertoire
tasks/handle_task
de l'exemple de code du nœud de calcul.cd golang-samples/appengine/go11x/tasks/handle_task
Notez que le fichier
app.yaml
contient les informations de configuration nécessaires.Déployez le service de nœud de calcul (
handle_task.go
) sur App Engine:gcloud app deploy
Vérifiez que l'application contenant le service est exécutée :
gcloud app browse
Votre navigateur ouvre
https://{YOUR_PROJECT_ID}.appspot.com/
et afficheHello, World!
.
Node.js
L'exemple Node.js se compose de deux fichiers, l'un (createTask.js
) exécuté localement en tant qu'outil de ligne de commande pour créer et ajouter des tâches à la file d'attente, et l'autre (server.js
) déployé sur App Engine en tant que nœud de calcul pour "traiter" la tâche.
Pour télécharger et installer l'exemple, procédez comme suit :
Clonez le dépôt de l'exemple d'application sur votre ordinateur local :
git clone https://github.com/googleapis/nodejs-tasks.git
Accédez au répertoire qui contient l'exemple de code :
cd nodejs-tasks/samples
Installez toutes les dépendances.
Vous pouvez utiliser npm :
npm install
Vous pouvez également utiliser yarn :yarn install
Assurez-vous d'avoir initialisé et configuré l'outil
gcloud
pour utiliser le projet que vous avez créé précédemment.Déployez le service de nœud de calcul (
server.js
) dans l'environnement standard App Engine:gcloud app deploy app.yaml
Vérifiez que l'application contenant le service est exécutée :
gcloud app browse
Votre navigateur ouvre
https://{YOUR_PROJECT_ID}.appspot.com/
et afficheHello, World!
.
Ruby
L'exemple Ruby se compose de deux fichiers, l'un (create_Task.rb
) exécuté localement en tant qu'outil de ligne de commande pour créer et ajouter des tâches à la file d'attente, et l'autre (app.rb
) déployé sur App Engine en tant que nœud de calcul pour "traiter" la tâche.
Pour télécharger et installer l'exemple, procédez comme suit :
Clonez le dépôt de l'exemple d'application sur votre ordinateur local :
git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git
Accédez au répertoire qui contient l'exemple de code :
cd ruby-docs-samples/appengine/cloud-tasks
Installez les dépendances :
bundle install
Assurez-vous d'avoir initialisé et configuré l'outil
gcloud
pour utiliser le projet que vous avez créé précédemment.Déployez le service de nœud de calcul (
app.rb
) dans l'environnement flexible App Engine:gcloud app deploy app.yaml
Vérifiez que l'application contenant le service est exécutée :
gcloud app browse
Votre navigateur ouvre
https://{YOUR_PROJECT_ID}.appspot.com/
et afficheHello, World!
.
Pour en savoir plus sur la création de gestionnaires de tâches App Engine, consultez la page Créer des gestionnaires de tâches App Engine.
Créer une file d'attente Cloud Tasks
Utilisez la fonction de gestion des files d'attente gcloud
de la CLI gcloud pour créer votre file d'attente dans l'environnement que vous avez préparé précédemment.
Dans la ligne de commande, saisissez ce qui suit :
gcloud tasks queues create my-queue
Attendez que la file d'attente s'initialise, puis utilisez
describe
pour vérifier qu'elle a bien été créée:gcloud tasks queues describe my-queue
Vérifiez que le résultat ressemble à ceci :
name: projects/[PROJECT_ID]/locations/[LOCATION_ID]/queues/my-appengine-queue # Note these ids rateLimits: maxBurstSize: 100 maxConcurrentDispatches: 1000 maxDispatchesPerSecond: 500.0 retryConfig: maxAttempts: 100 maxBackoff: 3600s maxDoublings: 16 minBackoff: 0.100s state: RUNNING
Ajouter une tâche à la file d'attente Cloud Tasks
C#
Créez une tâche localement, ajoutez-la à la file d'attente que vous avez configurée, puis transmettez cette tâche à un nœud de calcul asynchrone :
Définissez les variables d'environnement suivantes sur votre machine, manuellement, dans le code de votre exemple d'application ou via un alias. L'exemple d'application utilise ces variables pour créer la requête qui ajoute des tâches à la file d'attente :
export GOOGLE_PROJECT_ID=my-project-id # The project ID you set up above export GCP_QUEUE=my-queue # the queue you created above export LOCATION_ID=my-location-id # The region in which your queue is running
Vous pouvez trouver l'ID d'emplacement de l'application App Engine à l'aide de la commande
gcloud
suivante:gcloud tasks locations list
Accédez au dossier
TasksSample
:cd ../api/TasksSample
À l'aide de
test
, créez une tâche et ajoutez une charge utile, la chaîne "hello". L'applicationCloudTasks
que vous avez déployée précédemment possède un point de terminaison,log_payload
, qui traite la charge utile en la journalisant.dotnet test
Consultez le journal pour vérifier que la tâche a bien atteint le point de terminaison :
gcloud app logs read
Python
Créez une tâche localement, ajoutez-la à la file d'attente que vous avez configurée, puis transmettez cette tâche à un nœud de calcul asynchrone :
Définissez les variables d'environnement suivantes sur votre machine manuellement, dans le code de votre exemple d'application ou via un alias. L'exemple d'application utilise ces variables pour créer la requête qui ajoute des tâches à la file d'attente :
export PROJECT_ID=PROJECT_ID # The project ID you set up above export LOCATION_ID=LOCATION_ID # The region in which your queue is running export QUEUE_ID=my-queue # The queue you created above
Remarque: Vous pouvez trouver le paramètre "Location ID" à l'aide de la commandegcloud
suivante:gcloud tasks locations list
Utilisez le fichier
create_app_engine_queue_task.py
local pour créer une tâche et ajouter une charge utilehello
. La charge utile peut être n'importe quelle donnée de la requête dont le nœud de calcul a besoin pour effectuer le traitement de la tâche :python create_app_engine_queue_task.py --project=$PROJECT_ID --location=$LOCATION_ID --queue=$QUEUE_ID --payload=hello
Vérifiez que la charge utile a été reçue :
gcloud app logs read
Java
Créez une tâche localement, ajoutez-la à la file d'attente que vous avez configurée, puis transmettez cette tâche à un nœud de calcul asynchrone :
Définissez les variables d'environnement suivantes sur votre machine manuellement, dans le code de votre exemple d'application ou via un alias. L'exemple d'application utilise ces variables pour créer la requête qui ajoute des tâches à la file d'attente :
export GOOGLE_CLOUD_PROJECT=PROJECT_ID # The project ID you set up above export LOCATION_ID=LOCATION_ID # The region in which your queue is running export QUEUE_ID=my-queue # The queue you created above
Remarque: Vous pouvez trouver le paramètre "Location ID" à l'aide de la commandegcloud
suivante:gcloud tasks locations list
Créez une tâche ciblée sur le point de terminaison
/task/create
du servlet que vous avez déployé avec la charge utilehello
. La charge utile peut être n'importe quelle donnée de la requête dont le nœud de calcul a besoin pour effectuer le traitement de la tâche :mvn exec:java -Dexec.mainClass="com.example.task.CreateTask" -Dexec.args="--project-id $GOOGLE_CLOUD_PROJECT --queue $QUEUE_ID --location $LOCATION_ID --payload hello"
Consultez les journaux pour vérifier que la charge utile a bien été reçue :
gcloud app logs read
PHP
Créez une tâche localement, ajoutez-la à la file d'attente que vous avez configurée, puis transmettez cette tâche à un nœud de calcul asynchrone :
Accédez au répertoire
snippets
:Définissez les variables d'environnement suivantes sur votre machine manuellement, dans le code de votre exemple d'application ou via un alias. L'exemple d'application utilise ces variables pour créer la requête qui ajoute des tâches à la file d'attente :
export PROJECT_ID=PROJECT_ID # The project ID from above export LOCATION_ID=LOCATION_ID # The region in which your queue is running export QUEUE_ID=my-queue # The queue you created above
Remarque: Vous pouvez trouver le paramètre"Location ID"à l'aide de la commandegcloud
suivante:gcloud tasks locations list
Utilisez l'extrait
create_task.php
local pour créer une tâche et ajouter une charge utilehello
. La charge utile peut être n'importe quelle donnée de la requête dont le nœud de calcul a besoin pour effectuer le traitement de la tâche :php src/create_task.php $PROJECT_ID $LOCATION_ID $QUEUE_ID hello
Consultez les journaux pour vérifier que la charge utile a bien été reçue :
gcloud app logs read
Go
Créez une tâche localement, ajoutez-la à la file d'attente que vous avez configurée, puis transmettez cette tâche à un nœud de calcul asynchrone :
Si vous êtes toujours dans le répertoire
tasks/handle_task
, accédez au répertoiretasks/create_task
.Définissez les variables d'environnement suivantes sur votre machine manuellement, dans le code de votre exemple d'application ou via un alias. Le client utilise ces informations pour créer la requête :
export PROJECT_ID=PROJECT_ID # The project ID from above export LOCATION_ID=LOCATION_ID # The region in which your queue is running export QUEUE_ID=my-queue # The queue you created above
Remarque: Vous pouvez trouver le paramètre"Location ID"à l'aide de la commandegcloud
suivante:gcloud tasks locations list
Créez une tâche avec la charge utile
hello
et ajoutez cette tâche à la file d'attente. La charge utile peut être n'importe quelle donnée de la requête dont le nœud de calcul a besoin pour effectuer le traitement de la tâche :go run . $PROJECT_ID $LOCATION_ID $QUEUE_ID hello
Vérifiez que le contenu a bien été reçu en affichant les journaux du service du nœud de calcul.
gcloud app logs read
Node.js
Créez une tâche localement, ajoutez-la à la file d'attente que vous avez configurée, puis transmettez cette tâche à un nœud de calcul asynchrone :
Définissez les variables d'environnement suivantes sur votre machine manuellement, dans le code de votre exemple d'application ou via un alias. Le client utilise ces informations pour créer la requête :
export PROJECT_ID=PROJECT_ID # The project ID from above export LOCATION_ID=LOCATION_ID # The region in which your queue is running export QUEUE_ID=my-queue # The queue you created above
Remarque: Vous pouvez trouver le paramètre"Location ID"à l'aide de la commandegcloud
suivante:gcloud tasks locations list
Créez une tâche avec la charge utile
hello
et ajoutez cette tâche à la file d'attente. La charge utile peut être n'importe quelle donnée de la requête dont le nœud de calcul a besoin pour effectuer le traitement de la tâche :node createTask.js $PROJECT_ID $QUEUE_ID $LOCATION_ID hello
Vérifiez que le contenu a bien été reçu en affichant les journaux du service du nœud de calcul.
gcloud app logs read
Ruby
Créez une tâche localement, ajoutez-la à la file d'attente que vous avez configurée, puis transmettez cette tâche à un nœud de calcul asynchrone :
Définissez les variables d'environnement suivantes sur votre machine manuellement, dans le code de votre exemple d'application ou via un alias. Le client utilise ces informations pour créer la requête :
export GOOGLE_CLOUD_PROJECT=my-project-id # The project ID from above export LOCATION_ID=my-location-id # The region in which your queue is running export QUEUE_ID=my-queue # The queue you created above
Remarque: Vous pouvez trouver le paramètre "Location ID" à l'aide de la commandegcloud
suivante:gcloud tasks locations list
Créez une tâche avec la charge utile
hello
et ajoutez cette tâche à la file d'attente. La charge utile peut être n'importe quelle donnée de la requête dont le nœud de calcul a besoin pour effectuer le traitement de la tâche :ruby create_task.rb $GOOGLE_CLOUD_PROJECT_ID $LOCATION_ID $QUEUE_ID hello
Vérifiez que le contenu a bien été reçu en affichant les journaux du service du nœud de calcul.
gcloud app logs read
Effectuer un nettoyage
Afin d'éviter que des frais ne soient facturés sur votre compte Google Cloud pour les ressources utilisées sur cette page, procédez comme suit :
- Dans la console, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.
Étapes suivantes
- Créez et configurez des files d'attente Cloud Tasks à l'aide du guide Créer des files d'attente Cloud Tasks.
- Pour en savoir plus sur Cloud Tasks, consultez l'article Comprendre Cloud Tasks
- Pour en savoir plus sur la gestion des files d'attente à l'aide de RPC, consultez la documentation de référence de l'API RPC.
- Apprenez-en davantage sur la gestion des files d'attente avec REST dans la documentation de référence de l'API REST.