Ajouter une tâche cible HTTP à une file d'attente Cloud Tasks
Cloud Tasks vous permet d'envoyer des tâches asynchrones à des cibles HTTP tout en contrôlant les taux d'exécution et le comportement des nouvelles tentatives. Dans ce guide de démarrage rapide, vous allez utiliser l'API Cloud Tasks pour créer une file d'attente et y ajouter une tâche cible HTTP.
Avant de commencer
-
Installez la Google Cloud CLI.
-
Configurez la gcloud CLI afin d'utiliser votre identité fédérée.
Pour en savoir plus, consultez Se connecter à la gcloud CLI avec votre identité fédérée.
-
Pour initialiser la gcloud CLI, exécutez la commande suivante :
gcloud init -
Créez ou sélectionnez un projet Google Cloud .
Rôles requis pour sélectionner ou créer un projet
- Sélectionnez un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique. Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
-
Créer un projet : pour créer un projet, vous devez disposer du rôle "Créateur de projet" (
roles/resourcemanager.projectCreator), qui contient l'autorisationresourcemanager.projects.create. Découvrez comment attribuer des rôles.
-
Créez un projet Google Cloud :
gcloud projects create PROJECT_ID
Remplacez
PROJECT_IDpar le nom du projet Google Cloud que vous créez. -
Sélectionnez le projet Google Cloud que vous avez créé :
gcloud config set project PROJECT_ID
Remplacez
PROJECT_IDpar le nom de votre projet Google Cloud .
-
Vérifiez que la facturation est activée pour votre projet Google Cloud .
Activez l'API Cloud Tasks, si ce n'est pas déjà fait :
Rôles requis pour activer les API
Pour activer les API, vous devez disposer de l'autorisation
serviceusage.services.enable. Si vous avez créé le projet, vous disposez probablement déjà de cette autorisation via le rôle Propriétaire (roles/owner). Sinon, vous pouvez l'obtenir via le rôle Administrateur Service Usage (roles/serviceusage.serviceUsageAdmin). Découvrez comment attribuer des rôles.gcloud services enable cloudtasks.googleapis.com
-
Créez des identifiants d'authentification locaux pour votre compte utilisateur :
gcloud auth application-default login
Si une erreur d'authentification est renvoyée, vérifiez que vous vous êtes connecté à la gcloud CLI avec votre identité fédérée.
-
Attribuez des rôles à votre compte utilisateur. Exécutez la commande suivante une fois pour chacun des rôles IAM suivants :
roles/cloudtasks.admin, roles/logging.viewergcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Remplacez les éléments suivants :
PROJECT_ID: ID du projet.USER_IDENTIFIER: identifiant de votre compte utilisateur compte. Pour obtenir des exemples, consultez Représenter les utilisateurs de pools de personnel dans les stratégies IAM.ROLE: rôle IAM que vous accordez à votre compte utilisateur.
Créer une file d'attente Cloud Tasks
Utilisez la commande gcloud tasks queues create pour créer votre file d'attente.
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 prise en charge dans laquelle vous avez déployé votre service ou 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: RUNNING
Ajouter une tâche à la file d'attente Cloud Tasks
Exécutez la commande gcloud tasks create-http-task pour créer une tâche qui cible un point de terminaison HTTP et ajoutez la tâche à votre file d'attente.
Créez une tâche, ajoutez-la à la file d'attente que vous avez créée, puis transmettez-la à un point de terminaison HTTP.
gcloud tasks create-http-task \ --queue=QUEUE_NAME \ --url=URL_PATH \ --method=GET \ --location=REGION \ --project=PROJECT_IDRemplacez
URL_PATHpar le chemin de l'URL complet auquel la requête sera envoyée. Le chemin d'accès doit commencer parhttp://ouhttps://. Par exemple :https://www.example.com.Vérifiez que la tâche a bien été exécutée en lisant les journaux.
gcloud logging read 'resource.type="cloud_tasks_queue" resource.labels.queue_id="QUEUE_NAME" severity>=DEFAULT' --limit=3Les journaux doivent ressembler à ce qui suit :
jsonPayload: '@type': type.googleapis.com/google.cloud.tasks.logging.v1.TaskActivityLog task: projects/PROJECT_ID/locations/REGION/queues/QUEUE_NAME/tasks/TASK_ID taskCreationLog: scheduleTime: '2024-07-04T19:00:27.801837Z' status: OK targetAddress: GET https://www.example.com/ targetType: HTTP ...
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.
Supprimer un projet Google Cloud :
gcloud projects delete PROJECT_ID
Vous pouvez également supprimer la file d'attente Cloud Tasks :
gcloud tasks queues delete QUEUE_NAME \
--location=REGION