Ver trabajos y tareas

En este documento se explica cómo ver las tareas y los trabajos de Batch.

Antes de empezar

  1. Si no has usado Batch antes, consulta el artículo Empezar a usar Batch y habilita Batch completando los requisitos previos para proyectos y usuarios.
  2. Para obtener los permisos que necesitas para ver los trabajos y las tareas, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Lector de trabajos de Batch (roles/batch.jobsViewer) o Editor de trabajos de Batch (roles/batch.jobsEditor) en el proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

    También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Ver tus trabajos

Para ver tus trabajos, selecciona uno de los siguientes métodos:

Ver una lista de tus trabajos

Puedes ver una lista de las tareas del proyecto actual mediante laGoogle Cloud consola, la CLI de gcloud, la API Batch, Go, Java, Node.js, Python o C++.

Consola

  1. Para ver una lista de los trabajos del proyecto actual mediante la consola deGoogle Cloud , ve a la página Lista de trabajos.

    Ir a la lista de tareas

    La lista de tareas puede ocupar varias páginas. Si necesitas ir a la página siguiente, haz clic en Siguiente en la parte inferior de la pantalla.

  2. Opcional: Si quieres filtrar la lista de trabajos, haz clic en Filtrar. A continuación, escribe o selecciona una propiedad y un valor.

    Por ejemplo, para filtrar la lista de forma que solo se incluyan los trabajos de un estado específico, introduce lo siguiente:

    Status:JOB_STATE
    

    Sustituye JOB_STATE por un estado del trabajo, por ejemplo, FAILED.

gcloud

Ver todas las tareas

Para ver una lista de las tareas del proyecto actual con gcloud CLI, usa el comando gcloud batch jobs list.

gcloud batch jobs list

Ver una lista filtrada de trabajos

También puedes añadir una o varias marcas para ver una lista filtrada de ofertas de empleo:

  • Para ver solo los empleos de una ubicación específica, incluye la marca --location.

  • Para ver solo los trabajos que coincidan con una expresión de filtro, especifica la marca --filter.

Por ejemplo, usa el siguiente comando:

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

Haz los cambios siguientes:

  • LOCATION: la ubicación en la que se encuentran uno o varios puestos.

  • FILTER_EXPRESSION: una expresión de filtro que define los trabajos que quieres mostrar. La expresión de filtro debe definir uno o varios pares de propiedad y valor separados por cero o más operadores booleanos (AND, OR y NOT).

    Por ejemplo, consulta las siguientes expresiones de filtro:

    • Filtrar por estado de la tarea: para ver solo las tareas que se encuentran en un estado específico, utilice la siguiente expresión de filtro:

      status.state="JOB_STATE"
      

      Sustituye JOB_STATE por un estado del trabajo, por ejemplo, FAILED.

    • Filtrar por etiquetas: Supongamos que en tu proyecto se han definido las siguientes etiquetas personalizadas:

      • Para indicar las tareas y sus recursos que ha creado tu equipo de investigación al consultar los informes de Facturación de Cloud, algunas de tus tareas y sus recursos tienen la etiqueta team definida como research.

      • Para indicar las cargas de trabajo urgentes, algunos trabajos tienen una etiqueta deadline con varios valores.

      • Para indicar los ejecutables que tu equipo de desarrollo ha probado correctamente, algunos ejecutables tienen una etiqueta tested con el valor true.

      A continuación, puede especificar la siguiente expresión de filtro:

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

      Esta expresión de filtro solo muestra los trabajos que cumplen todos los criterios siguientes:

      • Los trabajos del equipo de investigación que tienen la etiqueta team en la política de asignación del trabajo, que está definida como research.

      • Trabajos que cumplan al menos uno de los siguientes criterios:

        • Los trabajos que tienen un plazo, que tienen la etiqueta deadline en el trabajo que se ha definido con cualquier valor.

        • Tareas que tengan al menos un elemento ejecutable que se haya probado correctamente. Es decir, tareas que tengan al menos un elemento ejecutable con la etiqueta tested definida como true.

API

Ver todas las tareas

Para ver una lista de trabajos del proyecto actual en una ubicación específica mediante la API Batch, haz una solicitud GET al método jobs.list.

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

Haz los cambios siguientes:

Ver una lista filtrada de trabajos

También puede especificar el parámetro de consulta filter para ver una lista filtrada de trabajos en función de una expresión de filtro.

Por ejemplo, haz la siguiente solicitud GET:

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

Sustituye FILTER_EXPRESSION por una expresión de filtro que use la codificación de URLs. La expresión de filtro debe definir uno o varios pares de propiedad y valor separados por cero o más operadores booleanos (AND, OR y NOT).

Por ejemplo, consulta las siguientes expresiones de filtro:

  • Filtrar por estado de la tarea: para ver solo las tareas que se encuentran en un estado específico, utilice la siguiente expresión de filtro:

    status.state="JOB_STATE"
    

    Sustituye JOB_STATE por un estado del trabajo, por ejemplo, FAILED.

  • Filtrar por etiquetas: Supongamos que en tu proyecto se han definido las siguientes etiquetas personalizadas:

    • Para indicar las tareas y sus recursos que ha creado tu equipo de investigación al consultar los informes de Facturación de Cloud, algunas de tus tareas y sus recursos tienen la etiqueta team definida como research.

    • Para indicar las cargas de trabajo urgentes, algunos trabajos tienen una etiqueta deadline con varios valores.

    • Para indicar los ejecutables que tu equipo de desarrollo ha probado correctamente, algunos ejecutables tienen una etiqueta tested con el valor true.

    A continuación, puede especificar la siguiente expresión de filtro:

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

    Esta expresión de filtro solo muestra los trabajos que cumplen todos los criterios siguientes:

    • Los trabajos del equipo de investigación que tienen la etiqueta team en la política de asignación del trabajo, que está definida como research.

    • Trabajos que cumplan al menos uno de los siguientes criterios:

      • Los trabajos que tienen un plazo, que tienen la etiqueta deadline en el trabajo que se ha definido con cualquier valor.

      • Tareas que tengan al menos un elemento ejecutable que se haya probado correctamente. Es decir, tareas que tengan al menos un elemento ejecutable con la etiqueta tested definida como true.

Go

Go

Para obtener más información, consulta la documentación de referencia de la API Batch Go.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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

Para obtener más información, consulta la documentación de referencia de la API Batch Java.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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

Para obtener más información, consulta la documentación de referencia de la API Batch Node.js.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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

Para obtener más información, consulta la documentación de referencia de la API Batch Python.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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++

Para obtener más información, consulta la documentación de referencia de la API Batch C++.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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";
    }
  }

Ver los detalles de un trabajo

Puedes ver los detalles de una tarea del proyecto actual mediante laGoogle Cloud consola, la CLI de gcloud, la API Batch, Go, Java, Node.js, Python o C++.

Consola

Para ver los detalles de un trabajo del proyecto actual mediante la consolaGoogle Cloud , sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Lista de tareas.

    Ir a la lista de tareas

  2. En la columna Nombre del trabajo, haga clic en el nombre de un trabajo.

    Se abrirá la página Detalles del trabajo.

    La pestaña Detalles se abre de forma predeterminada. Para obtener más información, haz clic en otras pestañas.

gcloud

Para ver los detalles de una tarea del proyecto actual con la CLI de gcloud, usa el comando gcloud batch jobs describe con la marca --location.

gcloud batch jobs describe JOB_NAME \
    --location=LOCATION

Haz los cambios siguientes:

  • JOB_NAME: el nombre de un trabajo.

  • LOCATION: la ubicación donde se encuentra el trabajo.

API

Para ver los detalles de un trabajo del proyecto actual mediante la API Batch, haz una solicitud GET al método jobs.get.

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

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto del proyecto actual.

  • LOCATION: la ubicación donde se encuentra el trabajo.

  • JOB_NAME: el nombre de un trabajo.

Go

Go

Para obtener más información, consulta la documentación de referencia de la API Batch Go.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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

Para obtener más información, consulta la documentación de referencia de la API Batch Java.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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

Para obtener más información, consulta la documentación de referencia de la API Batch Node.js.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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

Para obtener más información, consulta la documentación de referencia de la API Batch Python.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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++

Para obtener más información, consulta la documentación de referencia de la API Batch C++.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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";
  }

Ver tareas

Para ver las tareas de uno de tus trabajos, selecciona uno de los siguientes métodos:

Ver la lista de tareas de un trabajo

Puedes ver una lista de las tareas de un trabajo o del grupo de tareas de un trabajo mediante laGoogle Cloud consola, la CLI de gcloud, la API Batch, Go, Java, Node.js, Python o C++.

Si quieres filtrar una lista de tareas de un trabajo o de un grupo de tareas de un trabajo (por ejemplo, para mostrar solo las tareas que se han completado correctamente), debes usar gcloud CLI o la API Batch.

Consola

Para ver un resumen de las tareas de un trabajo con la consolaGoogle Cloud , consulta los detalles de un trabajo para abrir la página Detalles del trabajo. A continuación, consulta la sección Detalles de la tarea.

gcloud

Para ver una lista de las tareas de un grupo de tareas de un trabajo con gcloud CLI, usa el comando gcloud batch tasks list con las siguientes marcas:

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

Haz los cambios siguientes:

  • JOB_NAME: el nombre de un trabajo.

  • LOCATION: la ubicación donde se encuentra el trabajo.

También puedes añadir la marca --filter para ver una lista filtrada de tareas en el grupo de tareas de un trabajo en función de una expresión de filtro.

Por ejemplo, usa el siguiente comando:

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

Sustituye FILTER_EXPRESSION por una expresión de filtro.

Por ejemplo, puede especificar la siguiente expresión de filtro para ver solo las tareas de un grupo de tareas de un trabajo que se estén ejecutando o que se hayan completado correctamente:

STATE=RUNNING OR STATE=SUCCEEDED

API

Para ver una lista de tareas de un grupo de tareas de un trabajo mediante la API Batch, haz una solicitud GET al método tasks.list:

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

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto del proyecto actual.

  • LOCATION: la ubicación donde se encuentra el trabajo.

  • JOB_NAME: el nombre de un trabajo.

  • TASK_GROUP_NAME: el nombre del grupo de tareas del que quieres ver los detalles. El valor debe ser group0.

También puede especificar el parámetro de consulta filter para ver una lista filtrada de tareas del grupo de tareas de un trabajo en función de una expresión de filtro.

Por ejemplo, haz la siguiente solicitud GET:

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

Sustituye FILTER_EXPRESSION por una expresión de filtro que use la codificación de URLs.

Por ejemplo, puede especificar la siguiente expresión de filtro para ver solo las tareas de un grupo de tareas de un trabajo que se estén ejecutando o que se hayan completado correctamente:

STATE=RUNNING%20OR%20STATE=SUCCEEDED

Tenga en cuenta que la expresión de filtro codificada como URL representa la siguiente expresión de filtro decodificada:

STATE=RUNNING OR STATE=SUCCEEDED

Go

Go

Para obtener más información, consulta la documentación de referencia de la API Batch Go.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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

Para obtener más información, consulta la documentación de referencia de la API Batch Java.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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

Para obtener más información, consulta la documentación de referencia de la API Batch Node.js.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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

Para obtener más información, consulta la documentación de referencia de la API Batch Python.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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++

Para obtener más información, consulta la documentación de referencia de la API Batch C++.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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";
    }
  }

Ver los detalles de una tarea

Puedes ver los detalles de una tarea mediante laGoogle Cloud consola, la CLI de gcloud, la API Batch, Go, Java, Node.js, Python o C++.

Consola

Para ver los detalles de una tarea con la consolaGoogle Cloud , consulta los detalles de un trabajo para abrir la página Detalles del trabajo. A continuación, consulta la sección Detalles de la tarea.

gcloud

Para ver los detalles de una tarea con la CLI de gcloud, usa el comando gcloud batch tasks describe con las siguientes marcas:

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

Haz los cambios siguientes:

  • TASK_INDEX: el índice de la tarea de la que quieres ver los detalles. En un grupo de tareas, el índice de tareas empieza por 0 en la primera tarea y aumenta en 1 con cada tarea adicional. Por ejemplo, un grupo de tareas que contiene cuatro tareas tiene los índices 0, 1, 2 y 3.

  • TASK_GROUP_NAME: el nombre del grupo de tareas que contiene la tarea de la que quieres ver los detalles. El valor debe ser group0.

  • JOB_NAME: el nombre de un trabajo.

  • LOCATION: la ubicación donde se encuentra el trabajo.

API

Para ver los detalles de una tarea mediante la API Batch, envía una solicitud GET al método tasks.get:

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

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto del proyecto actual.

  • LOCATION: la ubicación donde se encuentra el trabajo.

  • JOB_NAME: el nombre de un trabajo.

  • TASK_GROUP_NAME: el nombre del grupo de tareas que contiene la tarea de la que quieres ver los detalles. El valor debe ser group0.

  • TASK_INDEX: el índice de la tarea de la que quieres ver los detalles. En un grupo de tareas, el índice de la tarea empieza en 0 para la primera tarea y aumenta en 1 con cada tarea adicional. Por ejemplo, un grupo de tareas que contiene cuatro tareas tiene los índices 0, 1, 2 y 3.

Go

Go

Para obtener más información, consulta la documentación de referencia de la API Batch Go.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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

Para obtener más información, consulta la documentación de referencia de la API Batch Java.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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

Para obtener más información, consulta la documentación de referencia de la API Batch Node.js.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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

Para obtener más información, consulta la documentación de referencia de la API Batch Python.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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++

Para obtener más información, consulta la documentación de referencia de la API Batch C++.

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Para obtener más información, consulta el artículo Configurar la autenticación en un entorno de desarrollo 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";
  }

Siguientes pasos