Borrar y exportar trabajos

En esta página, se describe cómo borrar y exportar trabajos por lotes.

Cuando se borra un trabajo, los detalles y el historial de este que aparecen cuando visualizas un trabajo y sus tareas se quitan de Batch. Si deseas quitar toda la información y los recursos asociados con un trabajo, también debes borrar los elementos de cualquier producto adicional de Google Cloud que hayas habilitado, como temas de Pub/Sub, tablas de BigQuery o registros de Cloud Logging.

Google Cloud borra de forma automática un trabajo 60 días después de que falla o se realiza de forma correcta. Antes de que un trabajo se borre de forma automática, puedes realizar una de las siguientes acciones:

  • Exporta el trabajo: Si deseas conservar la información del trabajo por más de 60 días, puedes realizar una de las siguientes acciones:

  • Borra un trabajo: Como se explica en este documento, puedes borrar un trabajo de forma manual cuando estés listo para quitarlo de la lista de trabajos de tu proyecto y ya no necesites el historial del trabajo. Si borras un trabajo antes de su ejecución o mientras se ejecuta, este se cancelará.

Antes de comenzar

Borra un trabajo

Puedes borrar un trabajo con la consola de Google Cloud, gcloud CLI, la API de Batch, Go, Java, Node.js, Python o C++.

Console

Para borrar un trabajo con la consola de Google Cloud, sigue estos pasos:

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

    Ir a Lista de trabajos

  2. Haz clic en el nombre del trabajo que creaste. Se abrirá la página Detalles del trabajo.

  3. Haz clic en Borrar.

  4. En el cuadro de diálogo ¿Borrar trabajo por lotes?, para el campo, ingresa Delete.

  5. Haz clic en Borrar.

    En la página Lista de trabajos, se muestra que se borró el trabajo.

gcloud

Para borrar un trabajo con gcloud CLI, usa el comando gcloud batch jobs delete.

gcloud batch jobs delete JOB_NAME --location LOCATION

Reemplaza lo siguiente:

  • JOB_NAME: Es el nombre del trabajo.
  • LOCATION: Es la ubicación del trabajo.

API

Para borrar un trabajo con la API de Batch, usa el método jobs.delete:

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

Reemplaza lo siguiente:

Go

Go

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

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo 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

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

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo 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

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

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

/**
 * TODO(developer): Uncomment and replace these variables before running the sample.
 */
// const projectId = 'YOUR_PROJECT_ID';
/**
 * The region that hosts the job.
 */
// const region = 'us-central-1';
/**
 * The name of the job you want to 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);
}

callDeleteJob();

Python

Python

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

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo 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++

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

Para autenticarte en Batch, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.

#include "google/cloud/batch/v1/batch_client.h"

  [](std::string const& project_id, std::string const& location_id,
     std::string const& job_id) {
    auto const name = "projects/" + project_id + "/locations/" + location_id +
                      "/jobs/" + job_id;
    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";
  }

¿Qué sigue?