Veja empregos e tarefas

Este documento explica como ver tarefas e trabalhos em lote.

Antes de começar

  1. Se nunca usou o Batch, reveja o artigo Comece a usar o Batch e ative o Batch concluindo os pré-requisitos para projetos e utilizadores.
  2. Para receber as autorizações de que precisa para ver tarefas e trabalhos, peça ao seu administrador que lhe conceda a função do IAM Visualizador de trabalhos em lote (roles/batch.jobsViewer) ou Editor de trabalhos em lote (roles/batch.jobsEditor) no projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

    Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Veja os seus trabalhos

Para ver os seus trabalhos, selecione um dos seguintes métodos:

Veja uma lista dos seus trabalhos

Pode ver uma lista de tarefas no projeto atual através da Google Cloud consola, da CLI gcloud, da API Batch, do Go, do Java, do Node.js, do Python ou do C++.

Consola

  1. Para ver uma lista de tarefas no projeto atual através daGoogle Cloud consola, aceda à página Lista de tarefas.

    Aceda à lista de trabalhos

    A lista de tarefas pode ter várias páginas. Se precisar de continuar para a página seguinte, clique em Seguinte na parte inferior do ecrã.

  2. Opcional: se quiser filtrar a lista de trabalhos, clique em Filtrar. Em seguida, escreva ou selecione uma propriedade e um valor.

    Por exemplo, para filtrar a lista de modo a incluir apenas trabalhos num estado específico, introduza o seguinte:

    Status:JOB_STATE
    

    Substitua JOB_STATE por um estado da tarefa. Por exemplo, FAILED.

gcloud

Ver todos os empregos

Para ver uma lista de tarefas no projeto atual através da CLI gcloud, use o comando gcloud batch jobs list.

gcloud batch jobs list

Veja uma lista filtrada de trabalhos

Opcionalmente, pode adicionar uma ou mais flags para ver uma lista filtrada de tarefas:

  • Para ver apenas empregos numa localização específica, inclua a flag --location.

  • Para ver apenas tarefas com base numa expressão de filtro, especifique a flag --filter.

Por exemplo, use o seguinte comando:

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

Substitua o seguinte:

  • LOCATION: a localização onde existem um ou mais trabalhos.

  • FILTER_EXPRESSION: a expressão de filtro que define as tarefas que quer listar. A expressão de filtro tem de definir um ou mais pares propriedade-valor separados por zero ou mais operadores booleanos (AND, OR e NOT).

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

    • Filtrar com base no estado da tarefa: para ver apenas tarefas que se encontram num estado específico, use a seguinte expressão de filtro:

      status.state="JOB_STATE"
      

      Substitua JOB_STATE por um estado da tarefa. Por exemplo, FAILED.

    • Filtrar com base em etiquetas: suponhamos que o seu projeto definiu as seguintes etiquetas personalizadas:

      • Para indicar os trabalhos e os respetivos recursos criados pela sua equipa de investigação quando vê os relatórios de faturação do Google Cloud, alguns dos seus trabalhos e respetivos recursos têm uma etiqueta team definida como research.

      • Para indicar cargas de trabalho sensíveis ao tempo, algumas tarefas têm uma etiqueta deadline, que está definida para vários valores.

      • Para indicar os executáveis que a sua equipa de desenvolvimento testou com êxito, alguns executáveis têm uma etiqueta tested definida como true.

      Em seguida, pode especificar a seguinte expressão de filtro:

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

      Esta expressão de filtro apenas apresenta uma lista de tarefas que cumprem todos os seguintes critérios:

      • Tarefas da equipa de investigação com a etiqueta team na política de atribuição da tarefa definida como research.

      • Anúncios de emprego que cumpram, pelo menos, um dos seguintes critérios:

        • Trabalhos sensíveis ao tempo, que têm uma etiqueta deadline no trabalho definida para qualquer valor.

        • Tarefas que têm, pelo menos, um executável que foi testado com êxito, ou seja, tarefas que têm, pelo menos, um executável com uma etiqueta tested definida como true.

API

Ver todos os empregos

Para ver uma lista de tarefas no projeto atual para uma localização específica através da API Batch, faça um pedido GET ao método jobs.list.

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

Substitua o seguinte:

Veja uma lista filtrada de trabalhos

Opcionalmente, pode especificar o parâmetro de consulta filter para ver uma lista filtrada de trabalhos com base numa expressão de filtro.

Por exemplo, faça o seguinte pedido 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 usa a codificação de URL. A expressão de filtro tem de definir um ou mais pares propriedade-valor separados por zero ou mais operadores booleanos (AND, OR e NOT).

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

  • Filtrar com base no estado da tarefa: para ver apenas tarefas que se encontram num estado específico, use a seguinte expressão de filtro:

    status.state="JOB_STATE"
    

    Substitua JOB_STATE por um estado da tarefa. Por exemplo, FAILED.

  • Filtrar com base em etiquetas: suponhamos que o seu projeto definiu as seguintes etiquetas personalizadas:

    • Para indicar os trabalhos e os respetivos recursos criados pela sua equipa de investigação quando vê os relatórios de faturação do Google Cloud, alguns dos seus trabalhos e respetivos recursos têm uma etiqueta team definida como research.

    • Para indicar cargas de trabalho sensíveis ao tempo, algumas tarefas têm uma etiqueta deadline, que está definida para vários valores.

    • Para indicar os executáveis que a sua equipa de desenvolvimento testou com êxito, alguns executáveis têm uma etiqueta tested definida como true.

    Em seguida, pode especificar a seguinte expressão de filtro:

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

    Esta expressão de filtro apenas apresenta uma lista de tarefas que cumprem todos os seguintes critérios:

    • Tarefas da equipa de investigação com a etiqueta team na política de atribuição da tarefa definida como research.

    • Anúncios de emprego que cumpram, pelo menos, um dos seguintes critérios:

      • Trabalhos sensíveis ao tempo, que têm uma etiqueta deadline no trabalho definida para qualquer valor.

      • Tarefas que têm, pelo menos, um executável que foi testado com êxito, ou seja, tarefas que têm, pelo menos, um executável com uma etiqueta tested definida como true.

Ir

Go

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

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 Java em lote.

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 Node.js em lote.

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 documentação de referência da API Python em lote.

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 C++ em lote.

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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";
    }
  }

Veja os detalhes de um trabalho

Pode ver os detalhes de uma tarefa no projeto atual através da Google Cloud consola, da CLI gcloud, da API Batch, do Go, do Java, do Node.js, do Python ou do C++.

Consola

Para ver os detalhes de uma tarefa no projeto atual através da Google Cloud consola, siga estes passos:

  1. Na Google Cloud consola, aceda à página Lista de tarefas.

    Aceda à lista de trabalhos

  2. Na coluna Nome da tarefa, clique no nome de uma tarefa.

    É apresentada a página Detalhes do trabalho.

    O separador Detalhes está aberto por predefinição. Para mais informações, clique nos outros separadores.

gcloud

Para ver os detalhes de uma tarefa no projeto atual através da CLI gcloud, use o comando gcloud batch jobs describe com a flag --location.

gcloud batch jobs describe JOB_NAME \
    --location=LOCATION

Substitua o seguinte:

  • JOB_NAME: o nome de uma tarefa existente.

  • LOCATION: a localização onde o trabalho existe.

API

Para ver os detalhes de uma tarefa no projeto atual através da API Batch, faça um pedido GET ao método jobs.get.

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

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto do projeto atual.

  • LOCATION: a localização onde o trabalho existe.

  • JOB_NAME: o nome de uma tarefa existente.

Ir

Go

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

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 documentação de referência da API Java em lote.

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 documentação de referência da API Node.js em lote.

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 documentação de referência da API Python em lote.

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 documentação de referência da API C++ em lote.

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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";
  }

Ver tarefas

Para ver as tarefas de um dos seus trabalhos, selecione um dos seguintes métodos:

Veja uma lista das tarefas de um trabalho

Pode ver uma lista das tarefas num trabalho ou no grupo de tarefas de um trabalho através da Google Cloud consola, da CLI gcloud, da API Batch, do Go, do Java, do Node.js, do Python ou do C++.

Se quiser filtrar uma lista de tarefas num trabalho ou num grupo de tarefas de um trabalho, por exemplo, para listar apenas as tarefas que foram executadas com êxito, tem de usar a CLI gcloud ou a API Batch.

Consola

Para ver um resumo das tarefas de uma tarefa através da Google Cloud consola, veja os detalhes de uma tarefa para abrir a página Detalhes da tarefa. Em seguida, consulte a secção Detalhes da tarefa.

gcloud

Para ver uma lista das tarefas no grupo de tarefas de uma tarefa com a CLI gcloud, use o comando gcloud batch tasks list com as seguintes flags:

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

Substitua o seguinte:

  • JOB_NAME: o nome de uma tarefa existente.

  • LOCATION: a localização onde o trabalho existe.

Opcionalmente, pode adicionar a flag --filter para ver uma lista filtrada de tarefas no grupo de tarefas de um trabalho com base numa 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, pode especificar a seguinte expressão de filtro para ver apenas as tarefas no grupo de tarefas de um trabalho que estão em execução ou que foram executadas com êxito:

STATE=RUNNING OR STATE=SUCCEEDED

API

Para ver uma lista de tarefas no grupo de tarefas de um trabalho através da API Batch, faça um pedido 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 o seguinte:

  • PROJECT_ID: o ID do projeto do projeto atual.

  • LOCATION: a localização onde o trabalho existe.

  • JOB_NAME: o nome de uma tarefa existente.

  • TASK_GROUP_NAME: o nome do grupo de tarefas cujos detalhes quer ver. O valor tem de ser definido como group0.

Opcionalmente, pode especificar o parâmetro de consulta filter para ver uma lista filtrada de tarefas no grupo de tarefas de um trabalho com base numa expressão de filtro.

Por exemplo, faça o seguinte pedido 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 a codificação de URL.

Por exemplo, pode especificar a seguinte expressão de filtro para ver apenas as tarefas no grupo de tarefas de um trabalho que estão em execução ou que foram executadas com êxito:

STATE=RUNNING%20OR%20STATE=SUCCEEDED

Tenha em atenção que a expressão de filtro codificada em URL representa a seguinte expressão de filtro descodificada:

STATE=RUNNING OR STATE=SUCCEEDED

Ir

Go

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

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 Java em lote.

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 documentação de referência da API Node.js em lote.

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 Python em lote.

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 C++ em lote.

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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";
    }
  }

Veja os detalhes de uma tarefa

Pode ver os detalhes de uma tarefa através da Google Cloud consola, da CLI gcloud, da API Batch, do Go, do Java, do Node.js, do Python ou do C++.

Consola

Para ver os detalhes de uma tarefa através da Google Cloud consola, veja os detalhes de uma tarefa para abrir a página Detalhes da tarefa. Em seguida, consulte a secção Detalhes da tarefa.

gcloud

Para ver os detalhes de uma tarefa através da CLI gcloud, use o comando gcloud batch tasks describe com as seguintes flags:

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

Substitua o seguinte:

  • TASK_INDEX: o índice da tarefa cujos detalhes quer ver. Num grupo de tarefas, o índice da tarefa começa em 0 para a primeira tarefa e aumenta em 1 com 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 cujos detalhes quer ver. O valor tem de ser definido como group0.

  • JOB_NAME: o nome de uma tarefa existente.

  • LOCATION: a localização onde o trabalho existe.

API

Para ver os detalhes de uma tarefa através da API Batch, faça um pedido GET ao 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 o seguinte:

  • PROJECT_ID: o ID do projeto do projeto atual.

  • LOCATION: a localização onde o trabalho existe.

  • JOB_NAME: o nome de uma tarefa existente.

  • TASK_GROUP_NAME: o nome do grupo de tarefas que contém a tarefa cujos detalhes quer ver. O valor tem de ser definido como group0.

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

Ir

Go

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

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 Java em lote.

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 documentação de referência da API Node.js em lote.

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 Python em lote.

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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 C++ em lote.

Para se autenticar no Batch, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure 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";
  }

O que se segue?