Ajouter une tâche à une file d'attente Cloud Tasks
Ce guide de démarrage rapide vous permet d'essayer des 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 comme 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 transmet 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 des 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 des projets Google Cloud, des 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. Il est possible de créer des requêtes sans utiliser les bibliothèques clientes, mais celles-ci 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 pour 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 contenant 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/
) contenant l'exemple de code pourCloudTasks
et 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
Cet exemple Java 11 utilise deux applications :
- L'application
tasks
s'exécute localement en tant qu'outil de ligne de commande pour créer et ajouter des tâches à la file d'attente. - L'application Spring Boot
tasks-handler
traite les requêtes Cloud Tasks en tant que nœud de calcul en servant de point de terminaison pour recevoir les requêtes de tâches. Il s'agit de l'application App Engine principale que vous déployez.
Pour déployer l'exemple d'application :
- Téléchargez et installez le kit de développement Java SE 11 (JDK).
- Suivez les instructions de configuration de Cloud Tasks.
- Téléchargez et installez Maven pour créer, déployer et gérer votre application.
- Initialisez la CLI gcloud et configurez-la pour utiliser le projet que vous avez créé ci-dessus.
Installez le composant gcloud CLI
app-engine-java
:gcloud components install app-engine-java
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
Vous pouvez également télécharger l'exemple en tant que fichier ZIP et l'extraire.Accédez au répertoire de premier niveau pour l'application
tasks-handler
:cd java-docs-samples/appengine-java11/tasks-handler/
Déployer l'application
tasks-handler
sur App Enginemvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID
Remplacez PROJECT_ID par l'ID de votre projet Cloud. Si votre ID de projet est déjà inclus dans le fichier
pom.xml
, vous n'avez pas besoin d'inclure la propriété-Dapp.deploy.projectId
dans la commande que vous exécutez.
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/GoogleCloudPlatform/nodejs-docs-samples.git
Accédez au répertoire qui contient l'exemple de code :
cd nodejs-docs-samples/cloud-tasks/snippets
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 gcloud CLI pour créer votre file d'attente dans l'environnement que vous avez préparé ci-dessus.
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 ordinateur 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 et transmettez-la à un nœud de calcul asynchrone:
Accédez au répertoire
appengine-java11/tasks
et compilez l'application:cd ../tasks mvn package
Définissez les variables d'environnement suivantes sur votre ordinateur. L'exemple d'application les utilise 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
/tasks/create
du contrôleur de gestionnaire de tâches que vous avez déployé, avec la charge utile spécifiée. La charge utile peut être n'importe quelle donnée de la requête dont le nœud de calcul a besoin pour terminer le traitement de la tâche. Dans cet exemple, elle est codée en dur dans l'exemple et n'a pas besoin d'être spécifiée:mvn exec:java -Dexec.mainClass="com.example.task.CreateTask"
Une fois la tâche transmise au nœud de calcul et que celui-ci la traite, celui-ci renvoie un code d'état de réussite 2xx au service Cloud Tasks et la supprime automatiquement de la file d'attente.Vérifiez que la tâche a bien été reçue en affichant les journaux du service de nœuds de calcul:
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 ordinateur 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 ordinateur 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 ordinateur 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 ordinateur 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 Google Cloud, 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
Maintenant que vous avez ajouté une tâche à une file d'attente Cloud Tasks, continuez à explorer Cloud Tasks en consultant les pages suivantes :
- Gérez les tâches et les files d'attente existantes, y compris leur suppression, avec la section Gérer les files d'attente et les tâches.
- Créez et configurez des files d'attente Cloud Tasks à l'aide du guide Créer des files d'attente Cloud Tasks.
- Obtenez davantage d'informations sur la gestion des files d'attente avec gRPC dans la documentation de référence de l'API gRPC.
- Apprenez-en davantage sur la gestion des files d'attente avec REST dans la documentation de référence de l'API REST.
- Apprenez-en davantage sur les files d'attente Cloud Tasks avec la Présentation de Cloud Tasks