Guide de démarrage rapide pour les files d'attente Cloud Tasks

Les instructions suivantes vous permettent d'essayer des opérations de base avec les files d'attente Cloud Tasks via l'API Cloud Tasks :

  1. Avant de commencer (configurer votre environnement)
  2. Configurer l'exemple de code
  3. Créer une file d'attente
  4. Créer une tâche et l'ajouter à la file d'attente
  5. Nettoyer vos ressources

Avant de commencer

Pour configurer votre environnement Cloud, créez un projet GCP et ajoutez une application App Engine avec la facturation activée. Vous devez disposer d'une application App Engine activée dans votre projet pour exécuter votre file d'attente. Pour en savoir plus sur les projets GCP, les applications App Engine et la facturation en général, cliquez ici.

  1. Créez ou sélectionnez un projet GCP :
    Accéder à la page App Engine
    1. Utilisez les boutons situés 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, le backend 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. Un compte de service vous permet de vous authentifier auprès de Google Cloud par programmation.
    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 les requêtes. Il est possible de créer des requêtes sans utiliser les bibliothèques clientes, mais celles-ci peuvent vous aider à gérer les détails de la communication de bas niveau avec le serveur, comme l'authentification.
  5. Installez et configurez le SDK Cloud. Vous pouvez ainsi accéder à l'outil gcloud.

Configurer l'exemple

Ces exemples fournissent un framework qui vous permet 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. La file d'attente elle-même s'exécute sur App Engine.

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 GCP que vous avez créé précédemment.

  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/) 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œuds 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. La file d'attente proprement dite s'exécute sur App Engine.

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œuds 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. La file d'attente elle-même s'exécute sur App Engine. Pour exécuter l'exemple à l'aide de Java 11, consultez la page Java 11 – Exécuter du code 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
  • Le composant app-engine-java pour le SDK Cloud
  • 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 des plug-ins 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œuds 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. La file d'attente elle-même s'exécute sur App Engine.

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/php72/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 GCP que vous avez créé précédemment.

  7. À partir du répertoire apps/handler, déployez le service de nœuds 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. La file d'attente elle-même s'exécute sur App Engine.

Pour télécharger et installer l'exemple, procédez comme suit :

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

    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 pour 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œuds 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. La file d'attente elle-même s'exécute sur App Engine.

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œuds 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. La file d'attente elle-même s'exécute sur App Engine.

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œuds 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 du SDK Cloud pour créer une 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 ordinateur, et ce 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 à 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, et ce 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 l'ID d'emplacement à 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 ordinateur, et ce 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 l'ID d'emplacement à 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 ordinateur, et ce 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 l'ID d'emplacement à 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, et ce 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 l'ID d'emplacement à 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, et ce 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 l'ID d'emplacement à 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, et ce 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 l'ID d'emplacement à 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

Nettoyer

Pour éviter que les ressources utilisées dans ce guide démarrage rapide soient facturées sur votre compte Google Cloud :

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