Elimine trabalhos

Esta página descreve quando e como eliminar tarefas em lote.

Quando uma tarefa é eliminada, os detalhes e o histórico da tarefa que aparecem quando vê uma tarefa e as respetivas tarefas são removidos do Batch. Se quiser remover todas as informações e recursos associados a uma tarefa, também tem de eliminar itens de quaisquer Google Cloud produtos adicionais que ativou, como tópicos do Pub/Sub, tabelas do BigQuery ou registos do Cloud Logging.

Google Cloud elimina automaticamente uma tarefa 60 dias após o cancelamento, a conclusão ou a falha da mesma. Antes de uma tarefa ser eliminada automaticamente, pode, opcionalmente, fazer qualquer uma das seguintes ações:

  • Exporte informações de tarefas: se quiser reter as informações da tarefa durante mais de 60 dias, pode exportar as informações da tarefa para o BigQuery através dos fluxos de trabalho. Para mais informações, consulte o artigo Exporte informações de tarefas.

  • Eliminar uma tarefa: conforme explicado neste documento, pode eliminar manualmente uma tarefa quando quiser removê-la da lista de tarefas do seu projeto e já não precisar do histórico da tarefa. Se eliminar uma tarefa antes ou durante a sua execução, a tarefa é cancelada e eliminada.

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 eliminar uma tarefa, peça ao seu administrador para lhe conceder a função de IAM Editor de tarefas 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.

Elimine uma tarefa

Pode eliminar 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 eliminar uma tarefa através da Google Cloud consola, faça o seguinte:

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

    Aceda à lista de trabalhos

  2. Clique no nome da tarefa que criou. É apresentada a página Detalhes do trabalho.

  3. Clique em Eliminar.

  4. Na caixa de diálogo Eliminar tarefa em lote?, introduza Delete no campo.

  5. Clique em Eliminar.

    A página Lista de trabalhos apresenta o trabalho como eliminado.

gcloud

Para eliminar uma tarefa através da CLI gcloud, use o comando gcloud batch jobs delete.

gcloud batch jobs delete JOB_NAME --location LOCATION

Substitua o seguinte:

  • JOB_NAME: o nome da tarefa.
  • LOCATION: a localização da tarefa.

API

Para eliminar uma tarefa através da API Batch, use o método jobs.delete:

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

Substitua o seguinte:

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

// Deletes the specified job
func deleteJob(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: %w", err)
	}
	defer batchClient.Close()

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

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

	fmt.Fprintf(w, "Job deleted: %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 java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

public class DeleteJob {

  public static void main(String[] args)
      throws IOException, ExecutionException, InterruptedException, TimeoutException {
    // 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 that you want to delete.
    String jobName = "JOB_NAME";

    deleteJob(projectId, region, jobName);
  }

  // Triggers the deletion of a Job.
  public static void deleteJob(String projectId, String region, String jobName)
      throws IOException, ExecutionException, InterruptedException, TimeoutException {
    // 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 name = String.format("projects/%s/locations/%s/jobs/%s", projectId, region, jobName);

      batchServiceClient.deleteJobAsync(name).get(5, TimeUnit.MINUTES);
      System.out.printf("Delete the job: %s", jobName);
    }
  }
}

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 delete.
 */
// 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 callDeleteJob() {
  // Construct request
  const request = {
    name: `projects/${projectId}/locations/${region}/jobs/${jobName}`,
  };

  // Run request
  const [operation] = await batchClient.deleteJob(request);
  const [response] = await operation.promise();
  console.log(response);
}

await callDeleteJob();

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.api_core.operation import Operation

from google.cloud import batch_v1


def delete_job(project_id: str, region: str, job_name: str) -> Operation:
    """
    Triggers the deletion of a 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 that you want to delete.

    Returns:
        An operation object related to the deletion. You can call `.result()`
        on it to wait for its completion.
    """
    client = batch_v1.BatchServiceClient()

    return client.delete_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;
    google::cloud::batch::v1::DeleteJobRequest request;
    request.set_name(name);
    // Initialize a client and issue the request.
    auto client = google::cloud::batch_v1::BatchServiceClient(
        google::cloud::batch_v1::MakeBatchServiceConnection());
    auto future = client.DeleteJob(request);
    // Wait until the long-running operation completes.
    auto success = future.get();
    if (!success) throw std::move(success).status();
    std::cout << "Job " << name << " successfully deleted\n";
  }

O que se segue?