Ajouter une tâche App Engine à une file d'attente Cloud Tasks
Ce guide de démarrage rapide vous explique comment ajouter une tâche App Engine à une file d'attente Cloud Tasks à l'aide de l'API Cloud Tasks.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Resource Manager and Cloud Tasks API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
-
Install the Google Cloud CLI.
-
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Cloud Resource Manager and Cloud Tasks API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable cloudresourcemanager.googleapis.com tasks.googleapis.com
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
- Le compte de service App Engine par défaut est créé automatiquement lorsque vous utilisez App Engine. Vous pouvez utiliser ce compte de service pour tester ce guide de démarrage rapide. Toutefois, selon la configuration de vos règles d'administration, le compte de service par défaut peut ne pas se voir attribuer automatiquement le rôle
Editorsur votre projet. Si tel est le cas, vous devez attribuer les rôles suivants au compte de service :- Administrateur Artifact Registry (
roles/artifactregistry.admin) - Rédacteur de dépôt Artifact Registry avec création lors de l'envoi (
roles/artifactregistry.createOnPushWriter) - Administrateur de Compute (
roles/compute.admin) - Rédacteur de journaux (
roles/logging.logWriter) - Lecteur des objets de l'espace de stockage (
roles/storage.objectViewer)
- Administrateur Artifact Registry (
Dans la console Google Cloud , accédez à la page App Engine.
Dans la boîte de dialogue Bienvenue dans App Engine, effectuez l'une des opérations suivantes :
Si vous avez déjà créé une application App Engine et que le message Votre application App Engine a été créée s'affiche, vous pouvez ignorer les étapes restantes de cette section et passer à celles de la section Installer et déployer l'exemple.
ou
Si vous n'avez pas encore créé d'application App Engine, cliquez sur Créer une application et suivez les étapes restantes de cette section.
Sélectionnez une région pour votre application et notez-la.
Notez que
europe-westetus-centralsont appelés respectivementeurope-west1etus-central1dans les commandes Cloud Tasks.Ne sélectionnez pas de compte de service. Le compte de service App Engine par défaut est utilisé.
Cliquez sur Suivant.
L'application est configurée et créée. Cette opération peut prendre quelques minutes.
Ne téléchargez pas Cloud SDK. Cliquez plutôt sur Je le ferai plus tard.
Le message Votre application App Engine a bien été créée doit s'afficher.
Dans votre terminal, clonez le dépôt de l'exemple d'application sur votre ordinateur local.
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples.gitAccédez au répertoire qui contient l'exemple de code.
cd nodejs-docs-samples/cloud-tasks/snippetsInstallez toutes les dépendances à l'aide d'un gestionnaire de packages Node.js.
Vous pouvez utiliser NPM :
npm installVous pouvez également utiliser Yarn :
yarn installDéployez le service de nœuds de calcul (
server.js) dans l'environnement standard App Engine.gcloud app deploy app.yamlAssurez-vous que l'application contenant le service est en cours d'exécution.
gcloud app browseDans votre navigateur, accédez au lien fourni. Exemple :
https://PROJECT_ID.uc.r.appspot.com/Hello, World!devrait s'afficher.Dans votre terminal, créez une file d'attente qui enregistre toutes les opérations.
gcloud tasks queues create QUEUE_NAME \ --log-sampling-ratio=1.0 \ --location=REGIONRemplacez les éléments suivants :
QUEUE_NAME: nom de votre file d'attente Cloud TasksREGION: région dans laquelle vous avez déployé votre application
Attendez que la file d'attente s'initialise, puis vérifiez qu'elle a bien été créée.
gcloud tasks queues describe QUEUE_NAME \ --location=REGIONLa sortie devrait ressembler à ce qui suit :
name: projects/PROJECT_ID/locations/LOCATION_ID/queues/QUEUE_NAME rateLimits: maxBurstSize: 100 maxConcurrentDispatches: 1000 maxDispatchesPerSecond: 500.0 retryConfig: maxAttempts: 100 maxBackoff: 3600s maxDoublings: 16 minBackoff: 0.100s state: RUNNINGDéfinissez les variables d'environnement suivantes. Le client utilise ces informations pour créer la requête.
export PROJECT_ID=PROJECT_ID export LOCATION_ID=REGION export QUEUE_ID=QUEUE_NAMECréez une tâche avec la charge utile
helloet ajoutez cette tâche à la file d'attente. La charge utile peut être n'importe quelle donnée de la requête dont le service de nœud de calcul a besoin pour traiter la tâche.node createTask.js $PROJECT_ID $QUEUE_ID $LOCATION_ID helloVérifiez que la tâche a bien été exécutée en affichant les journaux du service de nœud de calcul.
gcloud app logs readLes journaux doivent ressembler à ce qui suit :
2024-06-20 15:00:00 default[20240620t143852] "POST /log_payload HTTP/1.1" 200 2024-06-20 15:00:00 default[20240620t143852] App listening on port 8081 2024-06-20 15:00:00 default[20240620t143852] Press Ctrl+C to quit. 2024-06-20 15:00:00 default[20240620t143852] Received task with payload: helloSupprimez la file d'attente Cloud Tasks :
gcloud tasks queues delete QUEUE_NAME \ --location=REGION
Ajouter une application App Engine
Lorsque vous ciblez une tâche App Engine, et avant de pouvoir déployer une application dans l'environnement standard App Engine, vous devez ajouter une application App Engine à votre projet.
Installer et déployer l'exemple
L'exemple Node.js utilisé dans ce guide de démarrage rapide se compose de deux fichiers : createTask.js est exécuté localement en tant qu'outil de ligne de commande pour créer et ajouter des tâches à la file d'attente Tasks, tandis que server.js est déployé sur App Engine en tant que service de nœud de calcul pour traiter la tâche.
Créer une file d'attente Cloud Tasks
Utilisez la commande gcloud tasks queues create pour créer votre file d'attente dans l'environnement que vous avez préparé.
Ajouter une tâche à la file d'attente Cloud Tasks
Créez une tâche, ajoutez-la à la file d'attente que vous avez créée, puis transmettez cette tâche au service de nœud de calcul.
Effectuer un nettoyage
Pour éviter que les ressources utilisées dans cette démonstration soient facturées sur votre compte Google Cloud , supprimez le projet Google Cloud qui les contient.
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Vous pouvez également supprimer les ressources que vous avez créées :