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

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

  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 qui contient 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/) qui contient l'exemple de code pour CloudTasks, puis 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

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 :

  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

  2. Accédez au répertoire de premier niveau pour l'exemple de tâches :

    cd java-docs-samples/appengine-java8/tasks/quickstart/

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

  4. Créez et exécutez l'outil de ligne de commande local (CreateTask.java):

    mvn appengine:run

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

  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/googleapis/nodejs-tasks.git

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

    cd nodejs-tasks/samples

  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 la CLI gcloud pour créer votre file d'attente dans l'environnement que vous avez préparé précédemment.

  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 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 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, 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_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

  2. Créez une tâche ciblée sur le point de terminaison /task/create du servlet que vous avez déployé avec la 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 :

    mvn exec:java -Dexec.mainClass="com.example.task.CreateTask"
      -Dexec.args="--project-id $GOOGLE_CLOUD_PROJECT
      --queue $QUEUE_ID --location $LOCATION_ID --payload hello"
    

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

  1. Accédez au répertoire snippets :

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