Ver trabalhos e tarefas

Neste documento, explicamos como visualizar jobs e tarefas em lote.

Antes de começar

  1. Se você nunca usou o Batch, consulte Começar a usar o Batch e ative o Batch concluindo os pré-requisitos para projetos e usuários.
  2. Para receber as permissões necessárias para visualizar jobs e tarefas, peça ao administrador para conceder a você o papel do IAM de Leitor de jobs em lote (roles/batch.jobsViewer) ou Editor de jobs em lote (roles/batch.jobsEditor) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

    Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.

Acessar seus trabalhos

Para visualizar os jobs, selecione um dos seguintes métodos:

Conferir uma lista dos seus jobs

Para acessar uma lista de jobs no projeto atual, use o console do Google Cloud, CLI gcloud, API Batch, Go, Java, Node.js, Python ou C++.

Console

  1. Para conferir uma lista de jobs no projeto atual usando o console do Google Cloud, acesse a página Lista de jobs.

    Acessar a lista de jobs

    A lista de jobs pode ter várias páginas. Se você precisar continuar para a próxima página, clique em Próxima na parte de baixo da tela.

  2. Opcional: se você quiser filtrar a lista de jobs, clique em Filtrar. Em seguida, digite ou selecione uma propriedade e um valor.

    Por exemplo, para filtrar a lista para incluir apenas vagas em um digite o seguinte:

    Status:JOB_STATE
    

    Substitua JOB_STATE por uma job state: por exemplo, FAILED.

gcloud

Ver todos os jobs

Para exibir uma lista de trabalhos no projeto atual usando o CLI gcloud, use o comando gcloud batch jobs list.

gcloud batch jobs list

Conferir uma lista filtrada de jobs

Opcionalmente, adicione uma ou mais flags para consultar uma lista filtrada de trabalhos:

  • Para visualizar apenas jobs em um local específico, inclua a sinalização --location.

  • Para visualizar apenas jobs com base em uma expressão de filtro, especifique a flag --filter.

Por exemplo, use o seguinte comando:

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

Substitua:

  • LOCATION: o local em que há um ou mais jobs.

  • FILTER_EXPRESSION: um expressão de filtro que define os jobs que você quer listar. A expressão de filtro precisa definir uma ou mais pares de propriedade-valor separados por zero ou mais operadores booleanos (AND, OR e NOT).

    Por exemplo, veja as seguintes expressões de filtro:

    • Filtro com base no estado do job: para visualizar apenas os jobs que estão em um estado específico, use a seguinte expressão de filtro:

      status.state="JOB_STATE"
      

      Substitua JOB_STATE por uma job state: por exemplo, FAILED.

    • Filtrar com base em rótulos: Suponha que seu projeto tenha definido o seguinte rótulos:

      • Para indicar os jobs e os recursos criados pela sua pesquisa equipe quando você visualiza relatórios do Cloud Billing, alguns dos jobs e os recursos têm um rótulo team definido como research.

      • Para indicar cargas de trabalho sensíveis ao tempo, alguns jobs têm um rótulo deadline, que é definido com vários valores.

      • Para indicar que os runnables foram testados pela equipe de desenvolvimento, alguns deles têm um rótulo tested definido como true.

      Em seguida, especifique a seguinte expressão de filtro:

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

      Essa expressão de filtro lista apenas os jobs que atendem a todos os seguintes critérios:

      • Jobs da equipe de pesquisa que têm um rótulo team na política de alocação do job definida como research.

      • Jobs que atendem a pelo menos um dos seguintes critérios:

        • Jobs que são sensíveis ao tempo, que têm um rótulo deadline no job que é definido como qualquer valor.

        • Jobs que têm pelo menos um executável testado com sucesso, ou seja, jobs que têm pelo menos um executável com um rótulo tested definido como true.

API

Ver todos os jobs

Para conferir uma lista de jobs no projeto atual para um local específico usando a API Batch, faça uma solicitação GET para o método jobs.list.

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

Substitua:

  • PROJECT_ID: o ID do projeto do seu projeto atual.

  • LOCATION: o local em que os jobs existem.

Conferir uma lista filtrada de jobs

Também é possível especificar o parâmetro de consulta filter para consultar uma lista filtrada de vagas com base em uma expressão de filtro.

Por exemplo, faça a seguinte solicitação GET:

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

Substitua FILTER_EXPRESSION por uma expressão de filtro que use codificação de URL. A expressão de filtro precisa definir um ou mais pares de propriedade-valor que sejam separados por zero ou mais operadores booleanos (AND, OR e NOT).

Por exemplo, veja as seguintes expressões de filtro:

  • Filtro com base no estado do job: para visualizar apenas os jobs que estão em um estado específico, use a seguinte expressão de filtro:

    status.state="JOB_STATE"
    

    Substitua JOB_STATE por uma job state: por exemplo, FAILED.

  • Filtrar com base em rótulos: Suponha que seu projeto tenha definido o seguinte rótulos:

    • Para indicar jobs e os recursos deles criados pela equipe de pesquisa quando você consulta os relatórios do Cloud Billing, alguns jobs e os recursos deles têm um rótulo team definido como research.

    • Para indicar cargas de trabalho sensíveis ao tempo, alguns jobs têm um rótulo deadline, que é definido com vários valores.

    • Para indicar que os runnables foram testados pela equipe de desenvolvimento, alguns deles têm um rótulo tested definido como true.

    Em seguida, especifique a seguinte expressão de filtro:

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

    Essa expressão de filtro lista apenas os jobs que atendem a todos os seguintes critérios:

    • Jobs da equipe de pesquisa que têm um rótulo team na política de alocação do job definida como research.

    • Jobs que atendem a pelo menos um dos seguintes critérios:

      • Jobs que são sensíveis ao tempo, que têm um rótulo deadline no job que é definido como qualquer valor.

      • Jobs que têm pelo menos um executável testado com sucesso, ou seja, jobs que têm pelo menos um executável com um rótulo tested definido como true.

Go

Go

Para mais informações, consulte a API Batch Go documentação de referência.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 mais informações, consulte a documentação de referência da API Batch Java.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 mais informações, consulte a documentação de referência da API Batch Node.js.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 mais informações, consulte a API Batch Python documentação de referência.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 mais informações, consulte a documentação de referência da API Batch C++.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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";
    }
  }

Conferir os detalhes de um job

É possível conferir os detalhes de um job no projeto atual usando o console do Google Cloud, a CLI gcloud, a API Batch, Go, Java, Node.js, Python ou C++.

Console

Para exibir os detalhes de um job no projeto atual usando o Console do Google Cloud, siga estas etapas:

  1. No console do Google Cloud, acesse a página Lista de jobs.

    Acessar a lista de jobs

  2. Na coluna Nome do job, clique no nome de um job.

    A página Detalhes do job será aberta.

    A guia Detalhes é aberta por padrão. Para mais informações, clique em outras guias.

gcloud

Para exibir os detalhes de um job no projeto atual usando o CLI gcloud, use o Comando gcloud batch jobs describe com a sinalização --location.

gcloud batch jobs describe JOB_NAME \
    --location=LOCATION

Substitua:

  • JOB_NAME: o nome de um job atual.

  • LOCATION: o local em que o job existe.

API

Para exibir os detalhes de um job no projeto atual usando o Batch API, faça uma solicitação GET ao método jobs.get.

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

Substitua:

  • PROJECT_ID: o ID do projeto do projeto atual.

  • LOCATION: o local onde o job existe.

  • JOB_NAME: o nome de um job existente.

Go

Go

Para mais informações, consulte a documentação de referência da API Batch Go.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 mais informações, consulte a API Batch Java documentação de referência.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 mais informações, consulte a API Batch Node.js documentação de referência.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 mais informações, consulte a API Batch Python documentação de referência.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 mais informações, consulte a API Batch C++ documentação de referência.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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";
  }

Conferir tarefas

Para conferir as tarefas de um dos seus jobs, selecione um destes métodos:

Ver uma lista de tarefas de um job

É possível conferir uma lista das tarefas em um job ou no grupo de tarefas de um job usando o console do Google Cloud, a CLI gcloud, a API Batch, Go, Java, Node.js, Python ou C++.

Se você quiser filtrar uma lista de tarefas em um job ou no grupo de tarefas de um job, por exemplo, para listar apenas as tarefas que foram concluídas com sucesso, use a CLI gcloud ou a API Batch.

Console

Para ver um resumo das tarefas de um job usando o console do Google Cloud, acesse os detalhes de um job para abra a página Detalhes do job. Em seguida, consulte a seção Detalhes da tarefa.

gcloud

Para conferir uma lista das tarefas em um grupo de tarefas de um job usando a CLI gcloud, use o comando gcloud batch tasks list com as seguintes flags:

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

Substitua:

  • JOB_NAME: o nome de um job atual.

  • LOCATION: o local em que o job existe.

Também é possível adicionar a flag --filter para ver uma lista filtrada de tarefas no grupo de tarefas de um job com base em uma expressão de filtro.

Por exemplo, use o seguinte comando:

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

Substitua FILTER_EXPRESSION por uma expressão de filtro.

Por exemplo, é possível especificar a seguinte expressão de filtro para ver apenas as tarefas no grupo de tarefas de um job que estão em execução ou que foram concluídas:

STATE=RUNNING OR STATE=SUCCEEDED

API

Para ver uma lista de tarefas no grupo de tarefas de um job usando o Batch API, faça uma solicitação GET ao Método tasks.list:

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

Substitua:

  • PROJECT_ID: o ID do projeto do projeto atual.

  • LOCATION: o local onde o job existe.

  • JOB_NAME: o nome de um job existente.

  • TASK_GROUP_NAME: o nome do grupo de tarefas que você quer consultar. O valor precisa ser definido como group0.

Também é possível especificar o parâmetro de consulta filter para consultar uma lista filtrada de tarefas em um grupo de tarefas de um job com base em uma expressão de filtro.

Por exemplo, faça a seguinte solicitação GET:

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

Substitua FILTER_EXPRESSION por uma expressão de filtro que use codificação de URL.

Por exemplo, é possível especificar a seguinte expressão de filtro para ver apenas as tarefas no grupo de tarefas de um job que estão em execução ou que foram concluídas:

STATE=RUNNING%20OR%20STATE=SUCCEEDED

A expressão de filtro codificada para URL representa a seguinte expressão de filtro decodificada:

STATE=RUNNING OR STATE=SUCCEEDED

Go

Go

Para mais informações, consulte a API Batch Go documentação de referência.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 mais informações, consulte a documentação de referência da API Batch Java.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 mais informações, consulte a API Batch Node.js documentação de referência.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 mais informações, consulte a documentação de referência da API Batch Python.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 mais informações, consulte a documentação de referência da API Batch C++.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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";
    }
  }

Visualizar os detalhes de uma tarefa

É possível conferir os detalhes de uma tarefa usando o console do Google Cloud, a CLI gcloud, a API Batch, Go, Java, Node.js, Python ou C++.

Console

Para conferir os detalhes de uma tarefa usando o console do Google Cloud, acesse os detalhes de um job para abrir a página Detalhes do job. Em seguida, consulte a seção Detalhes da tarefa.

gcloud

Para visualizar os detalhes de uma tarefa usando a CLI gcloud, use o Comando gcloud batch tasks describe com as seguintes sinalizações:

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

Substitua:

  • TASK_INDEX: o índice da tarefa cujos detalhes você quer ver. Em um grupo de tarefas, o índice começa em 0 para a primeira tarefa e aumenta em 1 a cada tarefa adicional. Por exemplo, um grupo de tarefas que contém quatro tarefas tem os índices 0, 1, 2 e 3.

  • TASK_GROUP_NAME: o nome do grupo de tarefas que contém a tarefa que você quer consultar os detalhes. O valor deve ser Defina como group0.

  • JOB_NAME: o nome de um job atual.

  • LOCATION: o local em que o job existe.

API

Para visualizar os detalhes de uma tarefa usando a API Batch, faça uma GET para o 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

Substitua:

  • PROJECT_ID: o ID do projeto do projeto atual.

  • LOCATION: o local em que o job existe.

  • JOB_NAME: o nome de um job atual.

  • TASK_GROUP_NAME: o nome do grupo de tarefas que contém a tarefa com os detalhes que você quer conferir. O valor precisa ser definido como group0.

  • TASK_INDEX: o índice da tarefa que você quer ver os detalhes. Em um grupo de tarefas, o índice começa em 0 para a primeira tarefa e aumenta em 1 a cada tarefa adicional. Por exemplo, um grupo de tarefas que contém quatro tarefas tem os índices 0, 1, 2 e 3.

Go

Go

Para mais informações, consulte a API Batch Go documentação de referência.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 mais informações, consulte a documentação de referência da API Batch Java.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 mais informações, consulte a API Batch Node.js documentação de referência.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 mais informações, consulte a documentação de referência da API Batch Python.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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 mais informações, consulte a documentação de referência da API Batch C++.

Para autenticar no Batch, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento 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";
  }

A seguir