Supprimer des jobs

Cette page explique quand et comment supprimer des jobs Batch.

Lorsqu'un job est supprimé, les détails et l'historique du job qui s'affichent lorsque vous affichez un job et ses tâches sont supprimés de Batch. Si vous souhaitez supprimer toutes les informations et ressources associées à un job, vous devez également supprimer les éléments de tous les produitsGoogle Cloud supplémentaires que vous avez activés, tels que les thèmes Pub/Sub, les tables BigQuery ou les journaux Cloud Logging.

Google Cloud supprime automatiquement un job 60 jours après son annulation, sa réussite ou son échec. Avant qu'une tâche ne soit supprimée automatiquement, vous pouvez éventuellement effectuer l'une des opérations suivantes :

  • Informations sur les tâches d'exportation : si vous souhaitez conserver les informations d'une tâche pendant plus de 60 jours, vous pouvez les exporter vers BigQuery à l'aide de Workflows. Pour en savoir plus, consultez Exporter les informations sur les jobs.

  • Supprimer un job : comme expliqué dans ce document, vous pouvez supprimer manuellement un job lorsque vous êtes prêt à le retirer de la liste des jobs de votre projet et que vous n'avez plus besoin de son historique. Si vous supprimez un job avant ou pendant son exécution, il est annulé et supprimé.

Avant de commencer

  1. Si vous n'avez jamais utilisé Batch, consultez Premiers pas avec Batch et activez Batch en remplissant les conditions préalables pour les projets et les utilisateurs.
  2. Pour obtenir les autorisations nécessaires pour supprimer un job, demandez à votre administrateur de vous accorder le rôle IAM Éditeur de jobs par lot (roles/batch.jobsEditor) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

    Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.

Supprimer un job

Vous pouvez supprimer un job à l'aide de la console Google Cloud , de gcloud CLI, de l'API Batch, ou des langages Go, Java, Node.js, Python ou C++.

Console

Pour supprimer un job à l'aide de la console Google Cloud , procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Liste des jobs.

    Accéder à la liste des tâches

  2. Cliquez sur le nom du job que vous avez créé. La page "Job Details" (informations sur le job) s'ouvre alors.

  3. Cliquez sur Supprimer.

  4. Dans la boîte de dialogue Supprimer le job par lot ?, saisissez Delete dans le champ.

  5. Cliquez sur Supprimer.

    La page Liste des jobs indique que le job a été supprimé.

gcloud

Pour supprimer un job à l'aide de gcloud CLI, utilisez la commande gcloud batch jobs delete.

gcloud batch jobs delete JOB_NAME --location LOCATION

Remplacez les éléments suivants :

  • JOB_NAME : nom du job.
  • LOCATION : emplacement du job.

API

Pour supprimer un job à l'aide de l'API Batch, utilisez la méthode jobs.delete :

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

Remplacez les éléments suivants :

Go

Go

Pour en savoir plus, consultez la documentation de référence de l'API Batch Go.

Pour vous authentifier auprès de Batch, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement 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

Pour en savoir plus, consultez la documentation de référence de l'API Batch Java.

Pour vous authentifier auprès de Batch, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement 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

Pour en savoir plus, consultez la documentation de référence de l'API Batch Node.js.

Pour vous authentifier auprès de Batch, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement 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

Pour en savoir plus, consultez la documentation de référence de l'API Batch Python.

Pour vous authentifier auprès de Batch, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement 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++

Pour en savoir plus, consultez la documentation de référence de l'API Batch C++.

Pour vous authentifier auprès de Batch, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement 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";
  }

Étapes suivantes