Afficher les tâches et les tâches

Ce document explique comment afficher les tâches et les jobs Batch.

Avant de commencer

  1. Si vous n'avez jamais utilisé Batch, consultez Premiers pas avec Batch et activez Batch en remplissant les conditions préalables pour les projets et les utilisateurs.
  2. Pour obtenir les autorisations nécessaires pour afficher les jobs et les tâches, demandez à votre administrateur de vous accorder le rôle IAM Lecteur de jobs par lot (roles/batch.jobsViewer) ou Éditeur de jobs par lot (roles/batch.jobsEditor) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

    Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

Afficher vos tâches

Pour afficher vos tâches, sélectionnez l'une des méthodes suivantes :

Afficher la liste de vos tâches

Vous pouvez afficher la liste des tâches du projet en cours à l'aide de la la console Google Cloud, gcloud CLI, l'API Batch, Go, Java, Node.js, Python ou C++.

Console

  1. Pour afficher la liste des tâches du projet en cours à l'aide de la méthode Dans la console Google Cloud, accédez à la page Liste des tâches.

    Accéder à la liste des tâches

    La liste des tâches peut s'étendre sur plusieurs pages. Si vous devez passer à la page suivante, cliquez sur Suivant en bas de l'écran.

  2. Facultatif: Si vous souhaitez filtrer la liste des jobs, cliquez sur Filtre : Saisissez ou sélectionnez ensuite une propriété et une valeur.

    Par exemple, pour filtrer la liste afin de n'inclure que les offres d'emploi d'un poste saisissez la commande suivante:

    Status:JOB_STATE
    

    Remplacez JOB_STATE par un état de tâche (par exemple, FAILED).

gcloud

Afficher toutes les tâches

Pour afficher la liste des tâches du projet en cours à l'aide de la méthode gcloud CLI, utilisez la Commande gcloud batch jobs list

gcloud batch jobs list

Afficher une liste filtrée des jobs

Vous pouvez éventuellement ajouter un ou plusieurs indicateurs pour afficher une liste filtrée des tâches:

  • Pour n'afficher que les tâches d'un emplacement spécifique, incluez l'option --location.

  • Pour afficher uniquement les tâches en fonction d'une expression de filtre, spécifiez l'indicateur --filter.

Par exemple, exécutez la commande suivante :

gcloud batch jobs list \
    --location=LOCATION \
    --filter="FILTER_EXPRESSION"

Remplacez les éléments suivants :

  • LOCATION : emplacement d'une ou de plusieurs tâches.

  • FILTER_EXPRESSION: a expression de filtre qui définit les tâches que vous souhaitez répertorier. L'expression de filtre doit en définir une ou plusieurs paires propriété-valeur séparées par zéro ou plusieurs opérateurs booléens (AND, OR et NOT).

    Vous pouvez par exemple consulter les expressions de filtre suivantes:

    • Filtrer en fonction de l'état de la tâche:pour n'afficher que les tâches se trouvant dans un un état spécifique, utilisez l'expression de filtre suivante:

      status.state="JOB_STATE"
      

      Remplacez JOB_STATE par un état de tâche (par exemple, FAILED).

    • Filtrer en fonction des libellés: Supposons que votre projet ait défini les champs personnalisés suivants étiquettes:

      • Pour indiquer les jobs et leurs ressources créés par votre équipe de recherche lorsque vous consultez les rapports Cloud Billing, certains de vos jobs et de leurs ressources ont un libellé team défini sur research.

      • Pour indiquer des charges de travail urgentes, certaines tâches ont un deadline qui est défini sur différentes valeurs.

      • Pour indiquer les exécutables que votre équipe de développement a testés avec succès, certains exécutables ont un libellé tested défini sur true.

      Vous pouvez ensuite spécifier l'expression de filtre suivante:

      (allocationPolicy.labels.team=research) AND ((labels.deadline:*) OR (runnables.labels.tested=true))
      

      Cette expression de filtre ne répertorie que les tâches qui répondent à tous les critères suivants critères:

      • Emplois issus de l'équipe de recherche, et portant le libellé team la règle d'allocation du job définie sur research.

      • Les jobs qui répondent à au moins l'un des critères suivants :

        • Tâches urgentes, qui comportent un libellé deadline défini sur n'importe quelle valeur.

        • Tâches ayant au moins un exécutable qui a été testé avec succès, c'est-à-dire des tâches ayant au moins un exécutable avec un libellé tested défini sur true.

API

Afficher toutes les tâches

Pour afficher la liste des jobs du projet actuel pour un emplacement spécifique à l'aide de l'API Batch, envoyez une requête GET au Méthode jobs.list.

GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs

Remplacez les éléments suivants :

Afficher une liste filtrée des jobs

Vous pouvez également spécifier le paramètre de requête filter pour afficher une liste filtrée d'offres d'emploi, basée sur une expression de filtre.

Par exemple, exécutez la requête GET suivante:

GET https://batch.googleapis.com/v1/projects/example-project/locations/us-central1/jobs?filter=FILTER_EXPRESSION

Remplacez FILTER_EXPRESSION par un expression de filtre qui utilise l'encodage URL. L'expression de filtre doit définir une ou plusieurs paires propriété-valeur séparés par zéro ou plus opérateurs booléens (AND, OR et NOT).

Vous pouvez par exemple consulter les expressions de filtre suivantes:

  • Filtrer en fonction de l'état de la tâche:pour n'afficher que les tâches se trouvant dans un un état spécifique, utilisez l'expression de filtre suivante:

    status.state="JOB_STATE"
    

    Remplacez JOB_STATE par un état du job, pour exemple : FAILED.

  • Filtrer en fonction des libellés : imaginons que votre projet ait défini les libellés personnalisés suivants :

    • Pour indiquer les emplois et leurs ressources qui sont créés par votre recherche lorsque vous consultez des rapports Cloud Billing, certains de vos jobs leurs ressources possèdent un libellé team défini sur research.

    • Pour indiquer des charges de travail urgentes, certaines tâches ont un deadline qui est défini sur différentes valeurs.

    • Pour indiquer les exécutables que votre équipe de développement a testés avec succès, certains exécutables ont un libellé tested défini sur true.

    Vous pouvez ensuite spécifier l'expression de filtre suivante:

    (allocationPolicy.labels.team%3Dresearch)%20AND%20((labels.deadline%3A*)%20OR%20(runnables.labels.tested%3Dtrue))
    

    Cette expression de filtre ne liste que les tâches qui répondent à tous les critères suivants :

    • Emplois issus de l'équipe de recherche, et portant le libellé team la règle d'allocation du job définie sur research.

    • Les jobs qui répondent à au moins l'un des critères suivants :

      • Tâches urgentes, qui comportent un libellé deadline défini sur n'importe quelle valeur.

      • Les jobs dont au moins un exécutable a été correctement configuré Il s'agit des jobs dont au moins un exécutable avec Libellé tested défini sur true.

Go

Go

Pour en savoir plus, consultez la documentation de référence de l'API Go par lot.

Pour vous authentifier auprès de Batch, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

import (
	"context"
	"fmt"
	"io"

	batch "cloud.google.com/go/batch/apiv1"
	"cloud.google.com/go/batch/apiv1/batchpb"
	"google.golang.org/api/iterator"
)

// Lists all jobs in the given project and region
func listJobs(w io.Writer, projectID, region string) error {
	// projectID := "your_project_id"
	// region := "us-central1"

	ctx := context.Background()
	batchClient, err := batch.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("NewClient: %w", err)
	}
	defer batchClient.Close()

	req := &batchpb.ListJobsRequest{
		Parent: fmt.Sprintf("projects/%s/locations/%s", projectID, region),
	}

	var jobs []*batchpb.Job
	it := batchClient.ListJobs(ctx, req)

	for {
		job, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("unable to list jobs: %w", err)
		}
		jobs = append(jobs, job)
	}

	fmt.Fprintf(w, "Jobs: %v\n", jobs)

	return nil
}

Java

Java

Pour en savoir plus, consultez les API Java par lot documentation de référence.

Pour vous authentifier auprès de Batch, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

import com.google.cloud.batch.v1.BatchServiceClient;
import com.google.cloud.batch.v1.Job;
import java.io.IOException;

public class ListJobs {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    // Project ID or project number of the Cloud project you want to use.
    String projectId = "YOUR_PROJECT_ID";

    // Name of the region hosting the jobs.
    String region = "europe-central2";

    listJobs(projectId, region);
  }

  // Get a list of all jobs defined in given region.
  public static void listJobs(String projectId, String region) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the `batchServiceClient.close()` method on the client to safely
    // clean up any remaining background resources.
    try (BatchServiceClient batchServiceClient = BatchServiceClient.create()) {

      // Construct the parent path of the job.
      String parent = String.format("projects/%s/locations/%s", projectId, region);

      for (Job job : batchServiceClient.listJobs(parent).iterateAll()) {
        System.out.println(job.getName());
      }
      System.out.println("Listed all batch jobs.");
    }
  }
}

Node.js

Node.js

Pour en savoir plus, consultez les API Node.js par lot documentation de référence.

Pour vous authentifier auprès de Batch, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

/**
 * TODO(developer): Uncomment and replace these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
/**
 * The region that hosts the job.
 */
// const region = 'us-central-1';

// Imports the Batch library
const batchLib = require('@google-cloud/batch');

// Instantiates a client
const batchClient = new batchLib.v1.BatchServiceClient();

async function callListJobs() {
  // Construct request
  const request = {
    parent: `projects/${projectId}/locations/${region}`,
  };

  // Run request
  const iterable = await batchClient.listJobsAsync(request);
  for await (const response of iterable) {
    console.log(response);
  }
}

await callListJobs();

Python

Python

Pour en savoir plus, consultez les API Python par lot documentation de référence.

Pour vous authentifier auprès de Batch, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

from __future__ import annotations

from collections.abc import Iterable

from google.cloud import batch_v1


def list_jobs(project_id: str, region: str) -> Iterable[batch_v1.Job]:
    """
    Get a list of all jobs defined in given region.

    Args:
        project_id: project ID or project number of the Cloud project you want to use.
        region: name of the region hosting the jobs.

    Returns:
        An iterable collection of Job object.
    """
    client = batch_v1.BatchServiceClient()

    return client.list_jobs(parent=f"projects/{project_id}/locations/{region}")

C++

C++

Pour en savoir plus, consultez la documentation de référence de l'API C++ par lot.

Pour vous authentifier auprès de Batch, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

#include "google/cloud/batch/v1/batch_client.h"

  [](std::string const& project_id, std::string const& location_id) {
    auto const parent = "projects/" + project_id + "/locations/" + location_id;
    // Initialize a client and issue the request.
    auto client = google::cloud::batch_v1::BatchServiceClient(
        google::cloud::batch_v1::MakeBatchServiceConnection());
    int i = 0;
    for (auto job : client.ListJobs(parent)) {
      if (!job) throw std::move(job).status();
      std::cout << "Job[" << i++ << "]  " << job->DebugString() << "\n";
    }
  }

Afficher les détails d'une tâche

Vous pouvez afficher les détails d'un job dans le projet en cours à l'aide de la la console Google Cloud, gcloud CLI, l'API Batch, Go, Java, Node.js, Python ou C++.

Console

Pour afficher les détails d'une tâche dans le projet en cours à l'aide de la console Google Cloud, procédez comme suit :

  1. Dans la console Google Cloud, accédez à la page Liste des tâches.

    Accéder à la liste des tâches

  2. Dans la colonne Nom de la tâche, cliquez sur le nom d'une tâche.

    La page "Job Details" (informations sur le job) s'ouvre alors.

    L'onglet Détails est ouvert par défaut. Pour plus d'informations, cliquez sur d'autres onglets.

gcloud

Pour afficher les détails d'une tâche dans le projet en cours à l'aide de la gcloud CLI, utilisez la Commande gcloud batch jobs describe avec l'indicateur --location.

gcloud batch jobs describe JOB_NAME \
    --location=LOCATION

Remplacez les éléments suivants :

  • JOB_NAME: nom d'une tâche existante.

  • LOCATION: emplacement où le job existe.

API

Pour afficher les détails d'une tâche dans le projet en cours à l'aide de l'API Batch, envoyez une requête GET à la méthode jobs.get.

GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME

Remplacez les éléments suivants :

  • PROJECT_ID : ID de projet du projet en cours.

  • LOCATION: emplacement où le job existe.

  • JOB_NAME : nom d'une tâche existante.

Go

Go

Pour en savoir plus, consultez la documentation de référence de l'API Go par lot.

Pour vous authentifier auprès de Batch, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

import (
	"context"
	"fmt"
	"io"

	batch "cloud.google.com/go/batch/apiv1"
	"cloud.google.com/go/batch/apiv1/batchpb"
)

// Retrieves the information about the specified job, most importantly its status
func getJob(w io.Writer, projectID, region, jobName string) (*batchpb.Job, error) {
	// projectID := "your_project_id"
	// region := "us-central1"
	// jobName := "some-job"

	ctx := context.Background()
	batchClient, err := batch.NewClient(ctx)
	if err != nil {
		return nil, fmt.Errorf("NewClient: %w", err)
	}
	defer batchClient.Close()

	req := &batchpb.GetJobRequest{
		Name: fmt.Sprintf("projects/%s/locations/%s/jobs/%s", projectID, region, jobName),
	}

	response, err := batchClient.GetJob(ctx, req)
	if err != nil {
		return nil, fmt.Errorf("unable to get job: %w", err)
	}

	fmt.Fprintf(w, "Job info: %v\n", response)

	return response, nil
}

Java

Java

Pour en savoir plus, consultez les API Java par lot documentation de référence.

Pour vous authentifier auprès de Batch, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

import com.google.cloud.batch.v1.BatchServiceClient;
import com.google.cloud.batch.v1.Job;
import com.google.cloud.batch.v1.JobName;
import java.io.IOException;

public class GetJob {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    // Project ID or project number of the Cloud project you want to use.
    String projectId = "YOUR_PROJECT_ID";

    // Name of the region hosts the job.
    String region = "europe-central2";

    // The name of the job you want to retrieve information about.
    String jobName = "JOB_NAME";

    getJob(projectId, region, jobName);
  }

  // Retrieve information about a Batch Job.
  public static void getJob(String projectId, String region, String jobName) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the `batchServiceClient.close()` method on the client to safely
    // clean up any remaining background resources.
    try (BatchServiceClient batchServiceClient = BatchServiceClient.create()) {

      Job job =
          batchServiceClient.getJob(
              JobName.newBuilder()
                  .setProject(projectId)
                  .setLocation(region)
                  .setJob(jobName)
                  .build());

      System.out.printf("Retrieved the job: %s ", job.getName());
    }
  }
}

Node.js

Node.js

Pour en savoir plus, consultez les API Node.js par lot documentation de référence.

Pour vous authentifier auprès de Batch, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

/**
 * TODO(developer): Uncomment and replace these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
/**
 * The region that hosts the job.
 */
// const region = 'us-central-1';
/**
 * The name of the job you want to retrieve information about.
 */
// const jobName = 'YOUR_JOB_NAME';

// Imports the Batch library
const batchLib = require('@google-cloud/batch');

// Instantiates a client
const batchClient = new batchLib.v1.BatchServiceClient();

async function callGetJob() {
  // Construct request
  const request = {
    name: `projects/${projectId}/locations/${region}/jobs/${jobName}`,
  };

  // Run request
  const response = await batchClient.getJob(request);
  console.log(response);
}

await callGetJob();

Python

Python

Pour en savoir plus, consultez les API Python par lot documentation de référence.

Pour vous authentifier auprès de Batch, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.


from google.cloud import batch_v1


def get_job(project_id: str, region: str, job_name: str) -> batch_v1.Job:
    """
    Retrieve information about a Batch Job.

    Args:
        project_id: project ID or project number of the Cloud project you want to use.
        region: name of the region hosts the job.
        job_name: the name of the job you want to retrieve information about.

    Returns:
        A Job object representing the specified job.
    """
    client = batch_v1.BatchServiceClient()

    return client.get_job(
        name=f"projects/{project_id}/locations/{region}/jobs/{job_name}"
    )

C++

C++

Pour en savoir plus, consultez les API C++ par lot documentation de référence.

Pour vous authentifier auprès de Batch, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

#include "google/cloud/batch/v1/batch_client.h"

  [](std::string const& project_id, std::string const& location_id,
     std::string const& job_id) {
    auto const name = "projects/" + project_id + "/locations/" + location_id +
                      "/jobs/" + job_id;
    // Initialize a client and issue the request.
    auto client = google::cloud::batch_v1::BatchServiceClient(
        google::cloud::batch_v1::MakeBatchServiceConnection());
    auto response = client.GetJob(name);
    if (!response) throw std::move(response).status();
    std::cout << "GetJob() succeeded with " << response->DebugString() << "\n";
  }

Afficher les tâches

Pour afficher les tâches d'une de vos tâches, sélectionnez l'une des méthodes suivantes :

Afficher la liste des tâches d'une mission

Vous pouvez afficher la liste des tâches d'un job ou d'un groupe de tâches à l'aide de la console Google Cloud, de la Google Cloud CLI, de l'API Batch, de Go, de Java, de Node.js, de Python ou de C++.

Si vous souhaitez filtrer une liste de tâches dans une tâche ou dans le groupe de tâches d'une tâche (par exemple, pour n'afficher que les tâches qui ont bien été exécutées), vous devez utiliser la gcloud CLI ou l'API Batch.

Console

Pour afficher un résumé des tâches d'une tâche à l'aide de la console Google Cloud, affichez les détails d'une tâche pour ouvrir la page Détails de la tâche. Consultez ensuite la section Détails de la tâche.

gcloud

Pour afficher la liste des tâches du groupe de tâches d'une tâche à l'aide de gcloud CLI, exécutez la commande gcloud batch tasks list avec les options suivantes :

gcloud batch tasks list \
    --job=JOB_NAME \
    --location=LOCATION

Remplacez les éléments suivants :

  • JOB_NAME : nom d'une tâche existante.

  • LOCATION: emplacement où le job existe.

Vous pouvez éventuellement ajouter l'option --filter pour afficher une liste filtrée des tâches. dans le groupe de tâches d'une tâche en fonction d'une expression de filtre.

Par exemple, exécutez la commande suivante :

gcloud batch tasks list \
    --job=example-job \
    --location=us-central1 \
    --filter="FILTER_EXPRESSION"

Remplacez FILTER_EXPRESSION par un expression de filtre.

Par exemple, vous pouvez spécifier l'expression de filtre suivante pour n'afficher que les tâches du groupe de tâches d'une tâche en cours d'exécution ou terminées :

STATE=RUNNING OR STATE=SUCCEEDED

API

Pour afficher la liste des tâches d'un groupe de tâches d'une tâche à l'aide de l'API Batch, envoyez une requête GET à la méthode tasks.list :

GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME/taskGroups/TASK_GROUP_NAME/tasks

Remplacez les éléments suivants :

  • PROJECT_ID: le ID du projet du projet en cours.

  • LOCATION : emplacement de la tâche.

  • JOB_NAME: nom d'une tâche existante.

  • TASK_GROUP_NAME : nom du groupe de tâches dont vous souhaitez afficher les détails. La valeur doit être définie sur group0.

Vous pouvez également spécifier le paramètre de requête filter pour afficher une liste filtrée des tâches du groupe de tâches d'une tâche, basée sur une expression de filtre.

Par exemple, envoyez la requête GET suivante :

GET https://batch.googleapis.com/v1/projects/example-project/locations/us-central1/jobs/example-job/taskGroups/group0/tasks?filter=FILTER_EXPRESSION

Remplacez FILTER_EXPRESSION par une expression de filtre qui utilise l'encodage d'URL.

Par exemple, vous pouvez spécifier l'expression de filtre suivante pour n'afficher que les tâches du groupe de tâches d'une tâche en cours d'exécution ou terminées :

STATE=RUNNING%20OR%20STATE=SUCCEEDED

Notez que l'expression de filtre encodée au format URL correspond à l'expression de filtre décodée ci-après :

STATE=RUNNING OR STATE=SUCCEEDED

Go

Go

Pour en savoir plus, consultez les API Go par lot documentation de référence.

Pour vous authentifier auprès de Batch, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

import (
	"context"
	"fmt"
	"io"

	batch "cloud.google.com/go/batch/apiv1"
	"cloud.google.com/go/batch/apiv1/batchpb"
	"google.golang.org/api/iterator"
)

// Lists all tasks in the given project and region
func listTasks(w io.Writer, projectID, region, jobName, taskGroup string) error {
	// projectID := "your_project_id"
	// region := "us-central1"
	// jobName := "some-job"
	// taskGroup := "group0" // defaults to "group0" on job creation unless overridden

	ctx := context.Background()
	batchClient, err := batch.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("NewClient: %w", err)
	}
	defer batchClient.Close()

	req := &batchpb.ListTasksRequest{
		Parent: fmt.Sprintf("projects/%s/locations/%s/jobs/%s/taskGroups/%s", projectID, region, jobName, taskGroup),
	}

	var tasks []*batchpb.Task
	it := batchClient.ListTasks(ctx, req)

	for {
		task, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("unable to list tasks: %w", err)
		}
		tasks = append(tasks, task)
	}

	fmt.Fprintf(w, "Tasks: %v\n", tasks)

	return nil
}

Java

Java

Pour en savoir plus, consultez la documentation de référence de l'API Java par lot.

Pour vous authentifier auprès de Batch, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

import com.google.cloud.batch.v1.BatchServiceClient;
import com.google.cloud.batch.v1.Task;
import java.io.IOException;

public class ListTasks {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    // Project ID or project number of the Cloud project you want to use.
    String projectId = "YOUR_PROJECT_ID";
    // Name of the region hosts the job.
    String region = "europe-central2";
    // Name of the job which tasks you want to list.
    String jobName = "JOB_NAME";
    // Name of the group of tasks. Usually it's `group0`.
    String groupName = "group0";

    listTasks(projectId, region, jobName, groupName);
  }

  // Get a list of all jobs defined in given region.
  public static void listTasks(String projectId, String region, String jobName, String groupName)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the `batchServiceClient.close()` method on the client to safely
    // clean up any remaining background resources.
    try (BatchServiceClient batchServiceClient = BatchServiceClient.create()) {

      String parent = String.format("projects/%s/locations/%s/jobs/%s/taskGroups/%s", projectId,
          region, jobName, groupName);
      for (Task task : batchServiceClient.listTasks(parent).iterateAll()) {
        System.out.println(task.getName());
      }
    }
  }
}

Node.js

Node.js

Pour en savoir plus, consultez la documentation de référence de l'API Node.js par lot.

Pour vous authentifier auprès de Batch, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

/**
 * TODO(developer): Uncomment and replace these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
/**
 * The region that hosts the job.
 */
// const region = 'us-central-1';
/**
 * The name of the job which tasks you want to list.
 */
// const jobName = 'YOUR_JOB_NAME';
/**
 * The name of the group of tasks. Usually it's `group0`.
 */
// const groupName = 'group0';

// Imports the Batch library
const batchLib = require('@google-cloud/batch');

// Instantiates a client
const batchClient = new batchLib.v1.BatchServiceClient();

async function callListTasks() {
  // Construct request
  const request = {
    parent: `projects/${projectId}/locations/${region}/jobs/${jobName}/taskGroups/${groupName}`,
  };

  // Run request
  const iterable = await batchClient.listTasksAsync(request);
  for await (const response of iterable) {
    console.log(response);
  }
}

await callListTasks();

Python

Python

Pour en savoir plus, consultez les API Python par lot documentation de référence.

Pour vous authentifier auprès de Batch, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

from __future__ import annotations

from collections.abc import Iterable

from google.cloud import batch_v1


def list_tasks(
    project_id: str, region: str, job_name: str, group_name: str
) -> Iterable[batch_v1.Task]:
    """
    Get a list of all jobs defined in given region.

    Args:
        project_id: project ID or project number of the Cloud project you want to use.
        region: name of the region hosting the jobs.
        job_name: name of the job which tasks you want to list.
        group_name: name of the group of tasks. Usually it's `group0`.

    Returns:
        An iterable collection of Task objects.
    """
    client = batch_v1.BatchServiceClient()

    return client.list_tasks(
        parent=f"projects/{project_id}/locations/{region}/jobs/{job_name}/taskGroups/{group_name}"
    )

C++

C++

Pour en savoir plus, consultez les API C++ par lot documentation de référence.

Pour vous authentifier auprès de Batch, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

#include "google/cloud/batch/v1/batch_client.h"

  [](std::string const& project_id, std::string const& location_id,
     std::string const& job_id, std::string const& group_id) {
    auto const parent = "projects/" + project_id + "/locations/" + location_id +
                        "/jobs/" + job_id + "/taskGroups/" + group_id;
    // Initialize a client and issue the request.
    auto client = google::cloud::batch_v1::BatchServiceClient(
        google::cloud::batch_v1::MakeBatchServiceConnection());
    int i = 0;
    for (auto task : client.ListTasks(parent)) {
      if (!task) throw std::move(task).status();
      std::cout << "Task[" << i++ << "]  " << task->DebugString() << "\n";
    }
  }

Afficher les détails d'une tâche

Vous pouvez afficher les détails d'une tâche à l'aide de la la console Google Cloud, gcloud CLI, l'API Batch, Go, Java, Node.js, Python ou C++.

Console

Pour afficher les détails d'une tâche à l'aide de la console Google Cloud, affichez les détails d'un job pour ouvrez la page Détails de la tâche. Consultez ensuite la section Détails de la tâche.

gcloud

Pour afficher les détails d'une tâche à l'aide de gcloud CLI, exécutez la commande gcloud batch tasks describe avec les indicateurs suivants :

gcloud batch tasks describe TASK_INDEX \
  --location=LOCATION \
  --job=JOB_NAME \
  --task_group=TASK_GROUP_NAME

Remplacez les éléments suivants :

  • TASK_INDEX: index de la tâche que vous souhaitez afficher. dans les détails. Dans un groupe de tâches, l'index de la tâche commence à 0 pour le premier tâche et augmente de 1 à chaque tâche supplémentaire. Par exemple, un groupe de tâches contenant quatre tâches possède les indices 0, 1, 2 et 3.

  • TASK_GROUP_NAME : nom du groupe de tâches contenant la tâche dont vous souhaitez afficher les détails. La valeur doit être définie sur group0.

  • JOB_NAME : nom d'une tâche existante.

  • LOCATION: emplacement où le job existe.

API

Pour afficher les détails d'une tâche à l'aide de l'API Batch, envoyez une requête GET à la méthode tasks.get :

GET https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs/JOB_NAME/taskGroups/TASK_GROUP_NAME/tasks/TASK_INDEX

Remplacez les éléments suivants :

  • PROJECT_ID : ID de projet du projet en cours.

  • LOCATION: emplacement où le job existe.

  • JOB_NAME: nom d'une tâche existante.

  • TASK_GROUP_NAME : nom du groupe de tâches contenant la tâche dont vous souhaitez afficher les détails. La valeur doit être définie sur group0.

  • TASK_INDEX: index de la tâche souhaitée. pour afficher les détails. Dans un groupe de tâches, l'indice de tâche commence à 0 pour la première tâche et augmente de 1 pour chaque tâche supplémentaire. Par exemple : un groupe de tâches contenant quatre tâches possède les index 0, 1, 2, un, 3

Go

Go

Pour en savoir plus, consultez la documentation de référence de l'API Go par lot.

Pour vous authentifier auprès de Batch, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

import (
	"context"
	"fmt"
	"io"

	batch "cloud.google.com/go/batch/apiv1"
	"cloud.google.com/go/batch/apiv1/batchpb"
)

// Retrieves the information about the specified job, most importantly its status
func getTask(w io.Writer, projectID, region, jobName, taskGroup string, taskNumber int32) error {
	// projectID := "your_project_id"
	// region := "us-central1"
	// jobName := "some-job"
	// taskGroup := "group0" // defaults to "group0" on job creation unless overridden
	// taskNumber := 0

	ctx := context.Background()
	batchClient, err := batch.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("NewClient: %w", err)
	}
	defer batchClient.Close()

	req := &batchpb.GetTaskRequest{
		Name: fmt.Sprintf("projects/%s/locations/%s/jobs/%s/taskGroups/%s/tasks/%d",
			projectID, region, jobName, taskGroup, taskNumber),
	}

	response, err := batchClient.GetTask(ctx, req)
	if err != nil {
		return fmt.Errorf("unable to get task: %w", err)
	}

	fmt.Fprintf(w, "Task info: %v\n", response)

	return nil
}

Java

Java

Pour en savoir plus, consultez la documentation de référence de l'API Java par lot.

Pour vous authentifier auprès de Batch, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

import com.google.cloud.batch.v1.BatchServiceClient;
import com.google.cloud.batch.v1.Task;
import com.google.cloud.batch.v1.TaskName;
import java.io.IOException;

public class GetTask {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    // Project ID or project number of the Cloud project you want to use.
    String projectId = "YOUR_PROJECT_ID";
    // Name of the region hosts the job.
    String region = "europe-central2";
    // The name of the job you want to retrieve information about.
    String jobName = "JOB_NAME";
    // The name of the group that owns the task you want to check. Usually it's `group0`.
    String groupName = "group0";
    // Number of the task you want to look up.
    int taskNumber = 0;

    getTask(projectId, region, jobName, groupName, taskNumber);
  }

  // Retrieve information about a Task.
  public static void getTask(String projectId, String region, String jobName, String groupName,
      int taskNumber) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the `batchServiceClient.close()` method on the client to safely
    // clean up any remaining background resources.
    try (BatchServiceClient batchServiceClient = BatchServiceClient.create()) {

      Task task = batchServiceClient.getTask(TaskName.newBuilder()
          .setProject(projectId)
          .setLocation(region)
          .setJob(jobName)
          .setTaskGroup(groupName)
          .setTask(String.valueOf(taskNumber))
          .build());
      System.out.printf("Retrieved task information: %s", task.getName());
    }
  }
}

Node.js

Node.js

Pour en savoir plus, consultez la documentation de référence de l'API Node.js par lot.

Pour vous authentifier auprès de Batch, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

/**
 * TODO(developer): Uncomment and replace these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
/**
 * The region that hosts the job.
 */
// const region = 'us-central-1';
/**
 * The name of the job you want to retrieve information about.
 */
// const jobName = 'YOUR_JOB_NAME';
/**
 * The name of the group that owns the task you want to check.
 * Usually it's `group0`.
 */
// const groupName = 'group0';
/**
 * The number of the task you want to look up.
 */
// const taskNumber = 0;

// Imports the Batch library
const batchLib = require('@google-cloud/batch');

// Instantiates a client
const batchClient = new batchLib.v1.BatchServiceClient();

async function callGetJob() {
  // Construct request
  const request = {
    name:
      `projects/${projectId}/locations/${region}/jobs/${jobName}` +
      `/taskGroups/${groupName}/tasks/${taskNumber}`,
  };

  // Run request
  const response = await batchClient.getTask(request);
  console.log(response);
}

await callGetJob();

Python

Python

Pour en savoir plus, consultez les API Python par lot documentation de référence.

Pour vous authentifier auprès de Batch, configurez le service Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.


from google.cloud import batch_v1


def get_task(
    project_id: str, region: str, job_name: str, group_name: str, task_number: int
) -> batch_v1.Task:
    """
    Retrieve information about a Task.

    Args:
        project_id: project ID or project number of the Cloud project you want to use.
        region: name of the region hosts the job.
        job_name: the name of the job you want to retrieve information about.
        group_name: the name of the group that owns the task you want to check. Usually it's `group0`.
        task_number: number of the task you want to look up.

    Returns:
        A Task object representing the specified task.
    """
    client = batch_v1.BatchServiceClient()

    return client.get_task(
        name=f"projects/{project_id}/locations/{region}/jobs/{job_name}"
        f"/taskGroups/{group_name}/tasks/{task_number}"
    )

C++

C++

Pour en savoir plus, consultez les API C++ par lot documentation de référence.

Pour vous authentifier auprès de Batch, configurez les identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.

#include "google/cloud/batch/v1/batch_client.h"

  [](std::string const& project_id, std::string const& location_id,
     std::string const& job_id, std::string const& group_id,
     std::string const& task_number) {
    auto const name = "projects/" + project_id + "/locations/" + location_id +
                      "/jobs/" + job_id + "/taskGroups/" + group_id +
                      "/tasks/" + task_number;
    // Initialize a client and issue the request.
    auto client = google::cloud::batch_v1::BatchServiceClient(
        google::cloud::batch_v1::MakeBatchServiceConnection());
    auto response = client.GetTask(name);
    if (!response) throw std::move(response).status();
    std::cout << "GetTask() succeeded with " << response->DebugString() << "\n";
  }

Étape suivante