Exécuter des tâches

Cette page explique comment exécuter des tâches Cloud Run. L'exécution d'un job crée une exécution de job dans laquelle toutes les tâches doivent s'exécuter pour que l'exécution du job aboutisse. Les exécutions de tâches écrivent des journaux dans Cloud Logging et envoient des données de surveillance à Cloud Monitoring.

En plus de ces fonctionnalités de journalisation, vous pouvez également consulter les détails des 1 000 exécutions les plus récentes d'un job à l'aide du volet des détails d'exécution, ainsi que toutes les exécutions ayant eu lieu au cours des sept derniers jours. Les détails des exécutions plus anciennes sont supprimés et ne sont plus visibles dans le volet des détails d'exécution. Toutefois, les journaux et les données de surveillance des exécutions plus anciennes restent disponibles dans Cloud Logging et Cloud Monitoring, où ils sont soumis aux règles de conservation applicables pour ces produits.

Rôles requis

Pour obtenir les autorisations nécessaires pour effectuer les opérations décrites sur cette page, demandez à votre administrateur de vous accorder l'un des rôles IAM suivants sur votre job Cloud Run :

  • Pour exécuter des jobs à l'aide de la Google Cloud CLI : Demandeur Cloud Run (roles/run.invoker) sur le job Cloud Run
  • Pour exécuter des jobs à l'aide de la console Google Cloud, remplacer des configurations de jobs ou annuler des exécutions de jobs : Développeur Cloud Run (roles/run.developer) sur le job Cloud Run

Pour obtenir la liste des rôles et des autorisations IAM associés à Cloud Run, consultez les sections Rôles IAM Cloud Run et Autorisations IAM Cloud Run. Si votre job Cloud Run communique avec les API Google Cloud, telles que les bibliothèques clientes Cloud, consultez le guide de configuration de l'identité du service. Pour en savoir plus sur l'attribution de rôles, consultez les sections Autorisations de déploiement et Gérer les accès.

Exécuter des jobs

Vous pouvez exécuter des tâches à l'aide de la console Google Cloud ou de Google Cloud CLI.

Console

Pour exécuter une tâche, procédez comme suit :

  1. Accéder à la page Cloud Run

  2. Recherchez la tâche qui vous intéresse.

  3. Cliquez sur la tâche pour afficher la page Informations sur la tâche.

  4. Cliquez sur Exécuter.

Command line

Pour exécuter une tâche existante, procédez comme suit :

gcloud run jobs execute JOB_NAME

Si vous souhaitez que la commande attend la fin de l'exécution, utilisez

gcloud run jobs execute JOB_NAME --wait --region=REGION

Remplacez :

  • JOB_NAME par le nom du job.
  • REGION par la région dans laquelle se trouve la ressource. Vous pouvez également définir la propriété run/region.

Bibliothèques clientes

Pour exécuter un job existant à partir du code, procédez comme suit :

API REST

Pour exécuter une tâche existante, envoyez une requête HTTP POST à la méthode API jobs.run.

Exemple, à l'aide de curl :

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X POST \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB-NAME:run

Remplacez :

  • ACCESS_TOKEN par un jeton d'accès valide pour un compte disposant des autorisations IAM pour exécuter une tâche. Par exemple, si vous êtes connecté à gcloud, vous pouvez récupérer un jeton d'accès à l'aide de gcloud auth print-access-token. À partir d'une instance de conteneur Cloud Run, vous pouvez récupérer un jeton d'accès via le serveur de métadonnées d'instance de conteneur.
  • Remplacez JOB-NAME par le nom du job.
  • REGION par la région Google Cloud du job.
  • PROJECT-ID par l'ID du projet Google Cloud.

Exécuter les tâches immédiatement lors de la création d'une tâche

Si vous utilisez la ligne de commande, vous pouvez spécifier l'exécution de la tâche immédiatement après sa création :

gcloud run jobs create JOB_NAME --execute-now --region=REGION

Remplacer la configuration de tâche pour une exécution spécifique

Vous pouvez remplacer les arguments, les variables d'environnement, le nombre de tâches et le délai avant expiration de la tâche configurés pour une tâche lorsque vous exécutez une tâche en définissant ces paramètres lorsque vous démarrez une nouvelle exécution de la tâche. Les paramètres que vous spécifiez n'affectent que cette exécution, et non les suivants, car la définition de la tâche sous-jacente reste inchangée.

Voici quelques cas d'utilisation courants :

  • Vous exécutez la tâche de manière automatisée à partir de votre code et vous souhaitez remplacer des arguments et/ou des variables d'environnement, par exemple pour indiquer à la tâche où se trouvent les données d'entrée pour cette exécution.
  • Vous avez une tâche dans laquelle chaque tâche est destinée à traiter une seule donnée de données d'entrée. Vous souhaitez ignorer le nombre de tâches en fonction du nombre d'entrées à traiter.
  • La durée d'exécution de votre tâche varie selon les exécutions. Vous souhaitez ignorer le délai avant expiration de la tâche en fonction de sa durée d'exécution.

Pour remplacer la configuration d'une tâche pour une exécution, procédez comme suit:

Console

  1. Accéder à la page Cloud Run

  2. Recherchez la tâche qui vous intéresse.

  3. Cliquez sur la tâche pour afficher la page Informations sur la tâche.

  4. Cliquez sur la flèche de développement devant le bouton Modifier, puis sur Exécuter avec des remplacements pour afficher le formulaire Exécuter une tâche avec remplacements.

    Image

  5. Modifiez les arguments, les variables d'environnement, le nombre de tâches et/ou la configuration du délai d'expiration de la tâche pour cette exécution selon vos besoins, puis cliquez sur Exécuter.

Ligne de commande

Utilisez la commande :

gcloud run jobs execute JOB_NAME \
     --args ARGS \
     --update-env-vars KEY=VALUE>,KEY_N=VALUE_N \
     --tasks TASKS \
     --task-timeout TIMEOUT

Remplacer

Bibliothèques clientes

Pour exécuter un job existant à partir du code, remplacez la configuration du job :

API REST

Pour remplacer la configuration d'un job existant, envoyez une requête HTTP POST au point de terminaison jobs de l'API Cloud Run Admin.

Exemple, à l'aide de curl :

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X POST \
  -d '{"overrides": {"containerOverrides": [{"args": ["ARGS"], "env": [{"name": "KEY", "value": "VALUE"}]}], "taskCount": TASK-COUNT, "timeout": "TIMEOUT" }}' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB-NAME:run

Remplacez :

Annuler l'exécution du job

Pour arrêter une exécution de job Cloud Run en cours d'exécution, utilisez la fonctionnalité d'annulation. L'annulation d'un job arrête l'exécution du job en cours. L'état des exécutions annulées est cancelled. Vous pouvez toujours consulter l'exécution, y compris ses données de configuration, ses journaux et ses données de surveillance.

L'annulation d'un job n'annule pas les frais liés à l'utilisation des jobs Cloud Run pendant la durée d'exécution du job.

Pour annuler une exécution, procédez comme suit :

Console

  1. Accéder à la page Cloud Run

  2. Recherchez l'exécution de la tâche que vous souhaitez annuler.

  3. Cliquez sur l'exécution de la tâche pour afficher la page des détails d'exécution.

  4. Cliquez sur Annuler.

Ligne de commande

Utilisez la commande :

gcloud run jobs executions cancel EXECUTION_NAME

Remplacez EXECUTION_NAME par le nom de l'exécution.

Cette commande demande une confirmation. Répondez à l'invite en saisissant y pour confirmer.

Bibliothèques clientes

Pour annuler l'exécution d'un job à partir du code, procédez comme suit:

API REST

Pour annuler l'exécution d'un job, envoyez une requête HTTP POST au point de terminaison jobs de l'API Cloud Run Admin.

Exemple, à l'aide de curl :

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X POST \
  -d '' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB-NAME/executions/EXECUTION-NAME:cancel

Remplacez :

  • ACCESS_TOKEN par un jeton d'accès valide pour un compte disposant des autorisations IAM pour annuler des exécutions de job. Par exemple, si vous êtes connecté à gcloud, vous pouvez récupérer un jeton d'accès à l'aide de gcloud auth print-access-token. À partir d'une instance de conteneur Cloud Run, vous pouvez récupérer un jeton d'accès via le serveur de métadonnées d'instance de conteneur.
  • Remplacez JOB_NAME par le nom du job.
  • Remplacez EXECUTION-NAME par le nom de l'exécution de job.
  • REGION par la région Google Cloud du job.
  • PROJECT-ID par l'ID du projet Google Cloud.

Supprimer une exécution de job

Vous pouvez supprimer une exécution de job, même s'il est en cours d'exécution. Si vous supprimez une exécution, l'opération empêche la poursuite de l'exécution. Pour en savoir plus, consultez la section Supprimer une exécution de job.

Étapes suivantes

Après avoir exécuté une tâche, vous pouvez effectuer les opérations suivantes :