Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.
Guide de démarrage rapide: ajouter une tâche à une file d'attente Cloud Tasks

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.

  1. Créez ou sélectionnez un projet Google Cloud:
    Accéder à la page App Engine
    1. Utilisez les boutons en haut à droite pour sélectionner un nom de projet existant ou en créer un.
    2. 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.
  2. Ajoutez une application App Engine au projet :
    1. Sur la page Bienvenue dans App Engine, cliquez sur Créer une application.
    2. 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 et us-central dans les commandes App Engine, sont appelés respectivement europe-west1 et us-central1 dans les commandes Cloud Tasks.
    3. 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éé.
    4. 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.
    5. 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.

  3. Activez l'API Cloud Tasks.
    Accéder à la page de l'API Cloud Tasks
  4. Configurez l'authentification à l'API.
    1. 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.
    2. 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.
  5. 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 :

  1. Assurez-vous que .NET Core SDK, version 2.0, ou une version plus récente, est installé.

  2. Assurez-vous d'avoir initialisé et configuré l'outil gcloud pour utiliser le projet Google Cloud que vous avez créé ci-dessus.

  3. Clonez le dépôt de l'exemple d'application sur votre ordinateur local :

    git clone https://github.com/GoogleCloudPlatform/dotnet-docs-samples

  4. Accédez au répertoire contenant l'exemple de code pour CreateTask :

    cd dotnet-docs-samples/cloudtasks/api/TasksSample/

  5. Installez toutes les dépendances :

    dotnet restore

  6. Accédez au répertoire (dotnet-docs-samples/cloudtasks/appengine/) contenant l'exemple de code pour CloudTasks et installez toutes les dépendances:

    dotnet restore

  7. Compilez l'application et préparez-la pour le déploiement :

    dotnet publish

  8. 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

  9. Vérifiez que la page d'index fonctionne :

    gcloud app browse

    Votre navigateur ouvre https://{YOUR_PROJECT_ID}.appspot.com/ et affiche Hello, 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 :

  1. Clonez le dépôt de l'exemple d'application sur votre ordinateur local :

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples.git

  2. Accédez au répertoire qui contient l'exemple de code :

    cd python-docs-samples/appengine/flexible/tasks/

  3. Installez toutes les dépendances :

    pip install -r requirements.txt

  4. Assurez-vous d'avoir initialisé et configuré l'outil gcloud pour utiliser le projet que vous avez créé précédemment.

  5. Déployez le service de nœud de calcul (main.py) sur App Engine:

    gcloud app deploy

  6. Vérifiez que la page d'index fonctionne :

    gcloud app browse

    Votre navigateur ouvre https://{YOUR_PROJECT_ID}.appspot.com/ et affiche Hello, 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 :

  1. Téléchargez et installez le kit de développement Java SE 11 (JDK).
  2. Suivez les instructions de configuration de Cloud Tasks.
  3. Téléchargez et installez Maven pour créer, déployer et gérer votre application.
  4. Initialisez la CLI gcloud et configurez-la pour utiliser le projet que vous avez créé ci-dessus.
  5. 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 :

  1. 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.

  2. Accédez au répertoire de premier niveau pour l'application tasks-handler:

    cd java-docs-samples/appengine-java11/tasks-handler/

  3. Déployer l'application tasks-handler sur App Engine

    mvn 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 :

  1. Clonez le dépôt de l'exemple d'application sur votre ordinateur local :

    git clone https://github.com/GoogleCloudPlatform/php-docs-samples

  2. 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.
  3. 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.

  4. Dans le répertoire snippets, installez toutes les dépendances:

    composer install
    ou, pour une exécution locale seulement :
    php composer.phar install

  5. Dans le répertoire apps/handler, installez toutes les dépendances:

    composer install
    ou, pour une exécution locale seulement :
    php composer.phar install

  6. Assurez-vous d'avoir initialisé et configuré l'outil gcloud pour utiliser le projet Google Cloud que vous avez créé ci-dessus.

  7. À partir du répertoire apps/handler, déployez le service de nœud de calcul sur App Engine à l'aide de la commande gcloud app deploy:

    gcloud app deploy

  8. 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 affiche Hello, 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 :

  1. Assurez-vous d'avoir installé le composant gcloud App Engine Go:

    gcloud components install app-engine-go

  2. Assurez-vous d'avoir initialisé et configuré l'outil gcloud pour utiliser le projet que vous avez créé précédemment.

  3. Copiez le dépôt de l'exemple d'application sur votre ordinateur local :

    go get github.com/GoogleCloudPlatform/golang-samples/appengine/go11x/tasks/...

  4. 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

  5. Notez que le fichier app.yaml contient les informations de configuration nécessaires.

  6. Déployez le service de nœud de calcul (handle_task.go) sur App Engine:

    gcloud app deploy

  7. 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 affiche Hello, 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 :

  1. Clonez le dépôt de l'exemple d'application sur votre ordinateur local :

    git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.git

  2. Accédez au répertoire qui contient l'exemple de code :

    cd nodejs-docs-samples/cloud-tasks/snippets

  3. Installez toutes les dépendances.

    Vous pouvez utiliser npm :

    npm install
    Vous pouvez également utiliser yarn :
    yarn install

  4. Assurez-vous d'avoir initialisé et configuré l'outil gcloud pour utiliser le projet que vous avez créé précédemment.

  5. Déployez le service de nœud de calcul (server.js) dans l'environnement standard App Engine:

    gcloud app deploy app.yaml

  6. 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 affiche Hello, 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 :

  1. Clonez le dépôt de l'exemple d'application sur votre ordinateur local :

    git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples.git

  2. Accédez au répertoire qui contient l'exemple de code :

    cd ruby-docs-samples/appengine/cloud-tasks

  3. Installez les dépendances :

    bundle install

  4. Assurez-vous d'avoir initialisé et configuré l'outil gcloud pour utiliser le projet que vous avez créé précédemment.

  5. Déployez le service de nœud de calcul (app.rb) dans l'environnement flexible App Engine:

    gcloud app deploy app.yaml

  6. 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 affiche Hello, 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.

  1. Dans la ligne de commande, saisissez ce qui suit :

    gcloud tasks queues create my-queue

  2. 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

  3. 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 :

  1. 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

  2. Accédez au dossier TasksSample:

    cd ../api/TasksSample

  3. À l'aide de test, créez une tâche et ajoutez une charge utile, la chaîne "hello". L'application CloudTasks 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

  4. 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 :

  1. 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 commande gcloud suivante:
    gcloud tasks locations list

  2. Utilisez le fichier create_app_engine_queue_task.py local pour créer une tâche et ajouter une charge utile hello. 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

  3. 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:

  1. Accédez au répertoire appengine-java11/tasks et compilez l'application:

    cd ../tasks
    mvn package

  2. 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 commande gcloud suivante:
    gcloud tasks locations list

  3. 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.

  4. 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 :

  1. Accédez au répertoire snippets :

  2. 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 commande gcloud suivante:
    gcloud tasks locations list

  3. Utilisez l'extrait create_task.php local pour créer une tâche et ajouter une charge utile hello. 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
    

  4. 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 :

  1. Si vous êtes toujours dans le répertoire tasks/handle_task, accédez au répertoire tasks/create_task.

  2. 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 commande gcloud suivante:
    gcloud tasks locations list

  3. 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 

  4. 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 :

  1. 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 commande gcloud suivante:
    gcloud tasks locations list

  2. 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 

  3. 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 :

  1. 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 commande gcloud suivante:
    gcloud tasks locations list

  2. 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

  3. 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 :

  1. Dans la console Google Cloud, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. 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 :