Ver jobs e tarefas

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Nesta página, descrevemos como visualizar jobs em lote e as tarefas deles.

Antes de começar

  • Se você nunca usou o Batch antes da revisão, leia Primeiros passos com o lote e ative o Batch ao concluir os pré-requisitos para projetos e usuários.
  • 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 job em lote (roles/batch.jobsEditor) no projeto. Para obter mais informações sobre como conceder papéis, consulte Gerenciar o acesso.

Listar e descrever jobs

Liste jobs para ver os jobs em um projeto. Descreva um job para visualizar os detalhes de configuração dele.

Listar jobs

Liste jobs usando o Console do Google Cloud, a CLI gcloud, a API em lote, o Go, o Java, o Node.js ou o Python.

Console

Para listar os jobs do seu projeto, acesse a página Lista de jobs no Console do Google Cloud.

Acessar a lista de jobs

gcloud

Para listar os jobs do seu projeto usando a CLI gcloud, use o comando gcloud batch jobs list.

gcloud batch jobs list

API

Para listar os jobs do seu projeto para um local específico usando a API em lote, use 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.
  • LOCATION: o local do job.
  • JOB_NAME: o nome do job.

Go

Go

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

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: %v", 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: %v", 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 Java do lote.


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 Node.js do lote.

/**
 * 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);
  }
}

callListJobs();

Python

Python

Para mais informações, consulte a documentação de referência da API Python do lote.

from typing 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}")

Descreva um job

É possível descrever um job usando o Console do Google Cloud, a CLI gcloud, a API Batch, Go, Java, Node.js ou Python.

Console

  1. Para listar os jobs do seu projeto, acesse a página Lista de jobs no Console do Google Cloud.

    Acessar a lista de jobs

  2. Para descrever um job, na coluna Nome do job, clique no nome de um job. A página Detalhes do job é aberta.

gcloud

Para descrever um job usando a CLI gcloud, use o comando gcloud batch jobs describe.

gcloud batch jobs describe JOB_NAME --location LOCATION

Substitua:

  • JOB_NAME: o nome do job.
  • LOCATION: o local do job.

API

Para descrever um job usando a API em lote, use o 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 seu projeto.
  • LOCATION: o local do job.
  • JOB_NAME: o nome do job.

Go

Go

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

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) error {
	// projectID := "your_project_id"
	// region := "us-central1"
	// jobName := "some-job"

	ctx := context.Background()
	batchClient, err := batch.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("NewClient: %v", 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 fmt.Errorf("unable to get job: %v", err)
	}

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

	return nil
}

Java

Java

Para mais informações, consulte a documentação de referência da API Java do lote.


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 documentação de referência da API Node.js do lote.

/**
 * 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);
}

callGetJob();

Python

Python

Para mais informações, consulte a documentação de referência da API Python do lote.


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}")

Listar e descrever tarefas

Liste tarefas para ver as tarefas em um job ou no grupo de tarefas de um job. Descreva uma tarefa para ver os detalhes de configuração dela. É possível listar e descrever as tarefas de um job usando o Console do Google Cloud, a CLI gcloud ou a API Lote.

Console

Para ver os detalhes de uma tarefa usando o Console do Google Cloud, descreva um job para abrir a página Detalhes do job e consulte a seção Detalhes da tarefa.

gcloud

Listar tarefas

Para listar as tarefas do grupo de tarefas de um job usando a CLI gcloud, use o comando gcloud batch tasks list.

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

Substitua:

  • LOCATION: o local do job.
  • JOB_NAME: o nome do job.

Descrever uma tarefa

Para descrever uma tarefa usando a CLI gcloud, use o comando gcloud batch tasks describe.

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

Substitua:

  • TASK_INDEX: o índice da tarefa que você quer descrever. Os índices da tarefa em um grupo de tarefas começam em 0 e aumenta em um para cada tarefa. Por exemplo, os índices de um grupo de tarefas com quatro tarefas são 0, 1, 2 e 3.
  • TASK_GROUP_NAME: o nome do grupo de tarefas que contém a tarefa que você quer descrever. Defina como group0.
  • JOB_NAME: o nome do job.
  • LOCATION: o local do job.

API

Listar tarefas

Para listar as tarefas do grupo de tarefas de um job usando a API Batch, use o 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 seu projeto.
  • LOCATION: o local do job.
  • JOB_NAME: o nome do job.
  • TASK_GROUP_NAME: o nome do grupo de tarefas que você quer descrever. Defina como group0.

Descrever uma tarefa

Para descrever uma tarefa usando a API Batch, use 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 seu projeto.
  • LOCATION: o local do job.
  • JOB_NAME: o nome do job.
  • TASK_GROUP_NAME: o nome do grupo de tarefas que contém a tarefa que você quer descrever. Defina como group0.
  • TASK_INDEX: o índice da tarefa que você quer descrever. Os índices da tarefa em um grupo de tarefas começam em 0 e aumenta em um para cada tarefa. Por exemplo, os índices de um grupo de tarefas com quatro tarefas são 0, 1, 2 e 3.

A seguir