Vous pouvez utiliser Cloud Tasks pour créer des éléments de travail asynchrones appelés tâches. Ce document explique comment créer des tâches HTTP Target et des tâches App Engine.
Les tâches cibles HTTP sont des requêtes transmises à un nœud de calcul situé sur n'importe quel point de terminaison HTTP générique avec une adresse IP externe, comme Cloud Run, Google Kubernetes Engine, Compute Engine ou un serveur Web sur site.
Pour les cibles App Engine, Cloud Tasks transmet les requêtes de tâches à un gestionnaire dans App Engine. Toutes les files d'attente ciblant les gestionnaires App Engine doivent disposer d'une application App Engine. Les gestionnaires doivent s'exécuter dans la région où l'application App Engine s'exécute. Cette région sert également de paramètre REGION pour vos requêtes Cloud Tasks.
Vous pouvez créer une tâche HTTP Target de différentes manières :
- Dans la console Google Cloud
- En utilisant la Google Cloud CLI dans votre terminal ou Cloud Shell
- En envoyant une requête directe à l'API Cloud Tasks
Pour savoir comment ajouter par programmation une tâche cible HTTP à une file d'attente Cloud Tasks, consultez Créer des tâches cibles HTTP par programmation.
Vous pouvez créer une tâche App Engine de différentes manières :
- En utilisant la Google Cloud CLI dans votre terminal ou Cloud Shell
- En envoyant une requête directe à l'API Cloud Tasks
Pour savoir comment ajouter de manière programmatique une tâche App Engine à une file d'attente Cloud Tasks, consultez Créer des tâches App Engine de manière programmatique.
Avant de commencer
Assurez-vous d'avoir déjà créé une file d'attente Cloud Tasks. Pour en savoir plus, consultez Créer des files d'attente Cloud Tasks.
Créer une tâche cible HTTP
Lorsque vous créez une tâche, vous pouvez spécifier son nom. Si le nom est identique à celui d'une tâche existante ou d'une tâche supprimée ou terminée récemment, l'appel échouera. Si vous ne spécifiez pas de nom de tâche, un ID de tâche unique aléatoire est généré.
Comme il existe un coût de recherche supplémentaire pour identifier les noms de tâches en double, les tâches créées avec des ID spécifiés par l'utilisateur présentent une latence considérablement plus élevée. Nous vous recommandons d'utiliser des chaînes hachées pour l'ID de la tâche ou pour le préfixe de l'ID de la tâche. Pour en savoir plus, consultez Déduplication des tâches.
Console
Dans la console Google Cloud , accédez à la page Cloud Tasks > Files d'attente.
Cliquez sur le nom de la file d'attente à laquelle vous souhaitez ajouter votre tâche.
Cliquez sur Créer une tâche HTTP.
Vous pouvez éventuellement spécifier le nom de la tâche.
Pour URL, spécifiez l'URL complète à laquelle la requête sera envoyée. Le chemin doit commencer par
http://ouhttps://, par exemplehttps://www.example.com.Vous pouvez éventuellement spécifier la méthode HTTP à utiliser pour la requête. La valeur par défaut est
POST.Pour Corps de la requête, vous pouvez éventuellement fournir les données du corps HTTP à envoyer au nœud de calcul qui traite la tâche.
Vous pouvez éventuellement spécifier un ou plusieurs en-têtes de requête HTTP en cliquant sur Ajouter un en-tête.
Pour En-tête d'authentification, sélectionnez l'une des options d'autorisation suivantes pour spécifier comment la requête envoyée à la cible est authentifiée lors de l'exécution de la tâche :
- Aucun : aucun en-tête, pour les points de terminaison publics sans autorisation
- Ajouter un jeton OAuth : généralement utilisé pour les API Google hébergées sur
*.googleapis.com - Ajouter un jeton OIDC : utilisé pour les appels de points de terminaison Google Cloud et tiers, à l'exception des Google APIs hébergées sur
*.googleapis.com
Le cas échéant, pour Compte de service, indiquez l'adresse e-mail du compte de service qui sera utilisé pour générer le jeton d'autorisation inclus dans la requête envoyée à la cible lors de l'exécution de la tâche. Le compte de service doit se trouver dans le même projet que la file d'attente. L'appelant doit disposer de l'autorisation
iam.serviceAccounts.actAspour le compte de service.Le cas échéant, vous pouvez spécifier l'audience pour limiter les types d'actions ou les destinataires du jeton d'autorisation.
Cliquez sur Créer.
Votre tâche doit être listée sur la page Détails de la file d'attente.
gcloud
Pour créer une tâche HTTP Target et l'ajouter à une file d'attente existante, utilisez la commande gcloud tasks create-http-task.
gcloud tasks create-http-task \
--queue=QUEUE_ID \
--url=URL \
--location=REGION \
--project=PROJECT_ID \
--oidc-service-account-email=SERVICE_ACCOUNT_EMAIL
Remplacez les éléments suivants :
QUEUE_ID: nom de la file d'attente à laquelle ajouter la tâche.URL: URL complète à laquelle la requête sera envoyée. Le chemin doit commencer parhttp://ouhttps://(par exemple,https://www.example.com).REGION(facultatif) : Région dans laquelle la file d'attente est déployée (par exemple,us-central1).PROJECT_ID(facultatif) : ID du projetGoogle Cloud dans lequel la tâche sera créée.SERVICE_ACCOUNT_EMAIL(facultatif) : Adresse e-mail du compte de service utilisée pour générer un jeton d'autorisation inclus dans la requête envoyée à la cible lors de l'exécution de la tâche. Le compte de service doit se trouver dans le même projet que la file d'attente. L'appelant doit disposer de l'autorisationiam.serviceAccounts.actAspour le compte de service.Pour générer un jeton d'accès OAuth2 au lieu d'un jeton OpenID Connect, remplacez l'indicateur
--oidc-service-account-emailpar--oauth-service-account-emailpour spécifier l'adresse e-mail du compte de service.
Une fois la tâche créée, un message de confirmation doit s'afficher avec le nom complet de la ressource de la tâche créée.
REST
Pour créer une tâche cible HTTP et l'ajouter à une file d'attente existante, utilisez la méthode projects.locations.queues.tasks.create.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_ID: Obligatoire. ID du projet Google Cloud dans lequel la tâche sera créée.REGION: Obligatoire. Région dans laquelle la file d'attente est déployée (par exemple,us-central1).QUEUE_ID: Obligatoire. ID de la file d'attente à laquelle la tâche sera ajoutée.URL: Obligatoire. URL complète à laquelle la requête sera envoyée. Cette chaîne doit commencer parhttp://ouhttps://, par exemplehttps://www.example.com.SERVICE_ACCOUNT_EMAIL: facultatif. Adresse e-mail du compte de service utilisée pour générer un jeton d'autorisation inclus dans la requête envoyée à la cible lors de l'exécution de la tâche. Le compte de service doit se trouver dans le même projet que la file d'attente. L'appelant doit disposer de l'autorisationiam.serviceAccounts.actAspour le compte de service.Pour générer un jeton d'accès OAuth2 au lieu d'un jeton OpenID Connect, remplacez le champ
oidcTokenparoauthTokenpour spécifier l'adresse e-mail du compte de service.SCHEDULE_TIME(facultatif) : Heure à laquelle la tâche doit être tentée, au format RFC 3339 (par exemple,2026-10-02T15:01:23Z). Si l'heure n'est pas définie ou est dans le passé, Cloud Tasks la définit sur l'heure actuelle.
Corps JSON de la requête :
{
"task": {
"httpRequest": {
"url": "URL",
"httpMethod": "POST",
"oidcToken": {
"serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL"
}
},
"scheduleTime": "SCHEDULE_TIME"
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
Si la requête aboutit, le corps de la réponse contient la nouvelle instance de la ressource Task.
{
"name": "projects/PROJECT_ID/locations/REGION/queues/QUEUE_ID/tasks/TASK_ID",
"httpRequest": {
"url": "URL",
"httpMethod": "POST",
"headers": {
"User-Agent": "Google-Cloud-Tasks"
},
"oidcToken": {
"serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL",
"audience": "URL"
}
},
"scheduleTime": "SCHEDULE_TIME",
"createTime": "2026-04-30T19:11:50Z",
"dispatchDeadline": "600s",
"view": "BASIC"
}
Créer une tâche App Engine
Lorsque vous créez une tâche, vous pouvez spécifier son nom. Si le nom est identique à celui d'une tâche existante ou d'une tâche supprimée ou terminée récemment, l'appel échouera. Si vous ne spécifiez pas de nom de tâche, un ID de tâche unique aléatoire est généré.
Comme il existe un coût de recherche supplémentaire pour identifier les noms de tâches en double, les tâches créées avec des ID spécifiés par l'utilisateur présentent une latence considérablement plus élevée. Nous vous recommandons d'utiliser des chaînes hachées pour l'ID de la tâche ou pour le préfixe de l'ID de la tâche. Pour en savoir plus, consultez Déduplication des tâches.
gcloud
Pour créer une tâche App Engine et l'ajouter à une file d'attente existante, utilisez la commande gcloud tasks create-app-engine-task.
gcloud tasks create-app-engine-task \
--queue=QUEUE_ID \
--relative-uri=RELATIVE_URI \
--location=REGION \
--project=PROJECT_ID \
--routing=KEY:VALUE
Remplacez les éléments suivants :
QUEUE_ID: nom de la file d'attente à laquelle ajouter la tâche.RELATIVE_URI: URI relatif de la requête. Le chemin d'accès doit commencer par une barre oblique (/). Si aucun chemin n'est spécifié, le chemin racine (/) est utilisé.REGION(facultatif) : Région dans laquelle la file d'attente est déployée. Si elle n'est pas spécifiée, l'emplacement de l'application App Engine du projet actuel est utilisé.PROJECT_ID(facultatif) : ID du projetGoogle Cloud dans lequel la tâche sera créée.KEY:VALUE: Facultatif. Route à utiliser pour cette tâche, oùKEYest au moins l'une des valeurs suivantes :service,versionouinstance. Toutes les clés manquantes utiliseront le routage par défaut.
Une fois la tâche créée, un message de confirmation doit s'afficher avec le nom complet de la ressource de la tâche créée.
REST
Pour créer une tâche App Engine et l'ajouter à une file d'attente existante, utilisez la méthode projects.locations.queues.tasks.create.
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_ID: Obligatoire. ID du projet Google Cloud dans lequel la tâche sera créée.REGION: Obligatoire. Région dans laquelle la file d'attente est déployée.QUEUE_ID: Obligatoire. ID de la file d'attente à laquelle la tâche sera ajoutée.RELATIVE_URI: Obligatoire. URI relatif de la requête. Le chemin d'accès doit commencer par une barre oblique (/). S'il n'est pas spécifié, le chemin d'accès racine est utilisé (/).SERVICE(facultatif) : Service App Engine qui traitera la tâche. Par défaut, la tâche est envoyée au service qui est le service par défaut au moment où la tâche est recherchée.VERSION(facultatif) : Version d'App Engine qui traitera la tâche. Par défaut, la tâche est envoyée à la version qui est la version par défaut au moment de la tentative d'exécution de la tâche.SCHEDULE_TIME(facultatif) : Heure à laquelle la tâche doit être tentée, au format RFC 3339 (par exemple,2026-10-02T15:01:23Z). Si l'heure n'est pas définie ou est dans le passé, Cloud Tasks la définit sur l'heure actuelle.
Corps JSON de la requête :
{
"task": {
"appEngineHttpRequest": {
"httpMethod": "POST",
"relativeUri": "RELATIVE_URI",
"appEngineRouting": {
"service": "SERVICE",
"version": "VERSION"
}
},
"scheduleTime": "SCHEDULE_TIME"
}
}
Pour envoyer votre requête, développez l'une des options suivantes :
Si la requête aboutit, le corps de la réponse contient la nouvelle instance de la ressource Task.
{
"name": "projects/PROJECT_ID/locations/REGION/queues/QUEUE_ID/tasks/TASK_ID",
"appEngineHttpRequest": {
"httpMethod": "POST",
"relativeUri": "RELATIVE_URI",
"appEngineRouting": {
"service": "SERVICE",
"version": "VERSION",
"host": "VERSION.SERVICE.PROJECT_ID.appspot.com"
}
},
"scheduleTime": "SCHEDULE_TIME",
"createTime": "2026-04-30T19:11:50Z",
"dispatchDeadline": "600s",
"view": "BASIC"
}
Créer un lot de tâches
Vous pouvez créer un lot de tâches cibles et l'ajouter à une file d'attente existante en utilisant la méthode projects.locations.queues.tasks.batchCreate pour créer une liste de requêtes.
Veuillez noter les points suivants :
Toutes les tâches doivent être ajoutées à la même file d'attente.
Le nombre de tâches pouvant être créées dans un même lot est limité. Pour en savoir plus, consultez la page Quotas et limites.
Les requêtes par lot, qui agrègent des opérations individuelles dans une seule requête, ne sont pas atomiques, car il est possible que certaines des opérations contenues dans le lot échouent tandis que d'autres réussissent.
Vous pouvez également supprimer un lot de tâches. Pour en savoir plus, consultez Supprimer un lot de tâches d'une file d'attente.
Tâches HTTP
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_ID: Obligatoire. ID du projet Google Cloud dans lequel les tâches seront créées.REGION: Obligatoire. Région dans laquelle la file d'attente est déployée (par exemple,us-central1).QUEUE_ID: Obligatoire. ID de la file d'attente à laquelle les tâches seront ajoutées.URL: Obligatoire. URL complète à laquelle la requête sera envoyée. Cette chaîne doit commencer parhttp://ouhttps://, par exemplehttps://www.example.com.SERVICE_ACCOUNT_EMAIL: facultatif. Adresse e-mail du compte de service utilisée pour générer un jeton d'autorisation inclus dans la requête envoyée à la cible lors de l'exécution de la tâche. Le compte de service doit se trouver dans le même projet que la file d'attente. L'appelant doit disposer de l'autorisationiam.serviceAccounts.actAspour le compte de service.Pour générer un jeton d'accès OAuth2 au lieu d'un jeton OpenID Connect, remplacez le champ
oidcTokenparoauthTokenpour spécifier l'adresse e-mail du compte de service.
Le corps de la requête contient une liste de requêtes.
Corps JSON de la requête :
{
"requests": [
{
"task": {
"httpRequest": {
"url": "URL",
"httpMethod": "POST",
"oidcToken": {
"serviceAccountEmail": "SERVICE_ACCOUNT_EMAIL"
}
},
"scheduleTime": "SCHEDULE_TIME"
}
}
]
}
Pour envoyer votre requête, développez l'une des options suivantes :
Si la requête aboutit, le corps de la réponse contient une instance de la ressource Operation.
{
"name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.tasks.v2beta3.BatchCreateTasksMetadata"
},
"done": false
}
Tâches App Engine
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_ID: Obligatoire. ID du projet Google Cloud dans lequel la tâche sera créée.REGION: Obligatoire. Région dans laquelle la file d'attente est déployée.QUEUE_ID: Obligatoire. ID de la file d'attente à laquelle les tâches seront ajoutées.RELATIVE_URI: Obligatoire. URI relatif de la requête. Le chemin d'accès doit commencer par une barre oblique (/). S'il n'est pas spécifié, le chemin d'accès racine est utilisé (/).SERVICE(facultatif) : Service App Engine qui traitera la tâche. Par défaut, la tâche est envoyée au service qui est le service par défaut au moment où la tâche est recherchée.VERSION(facultatif) : Version d'App Engine qui traitera la tâche. Par défaut, la tâche est envoyée à la version qui est la version par défaut au moment de la tentative d'exécution de la tâche.SCHEDULE_TIME(facultatif) : Heure à laquelle la tâche doit être tentée, au format RFC 3339 (par exemple,2026-10-02T15:01:23Z). Si l'heure n'est pas définie ou est dans le passé, Cloud Tasks la définit sur l'heure actuelle.
Le corps de la requête contient une liste de requêtes.
Corps JSON de la requête :
{
"requests": [
{
"task": {
"appEngineHttpRequest": {
"httpMethod": "POST",
"relativeUri": "RELATIVE_URI",
"appEngineRouting": {
"service": "SERVICE",
"version": "VERSION"
}
},
"scheduleTime": "SCHEDULE_TIME"
}
}
]
}
Pour envoyer votre requête, développez l'une des options suivantes :
Si la requête aboutit, le corps de la réponse contient une instance de la ressource Operation.
{
"name": "projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.tasks.v2beta3.BatchCreateTasksMetadata"
},
"done": false
}
Étapes suivantes
- Configurer les files d'attente Cloud Tasks
- Définir les paramètres de nouvelle tentative pour une tâche
- Gérer les files d'attente et les tâches