Delete jobs

This page describes when and how to delete Batch jobs.

When a job is deleted, the job's details and history that appear when you view a job and its tasks are removed from Batch. If you want to remove all the information and resources associated with a job, then you need to also delete items from any additional Google Cloud products that you enabled, such as Pub/Sub topics, BigQuery tables, or Cloud Logging logs.

Google Cloud automatically deletes a job 60 days after it is cancelled, succeeds, or fails. Before a job is automatically deleted, you can optionally do either of the following:

  • Export job information: If you want to retain the information from the job for longer than 60 days, then you can export the job information to BigQuery by using Workflows. For more information, see Export job information .

  • Delete a job: As explained in this document, you can manually delete a job when you are ready to remove it from your project's list of jobs and no longer need the job's history. If you delete a job before or while it is running, then the job is cancelled and deleted.

Before you begin

  1. If you haven't used Batch before, review Get started with Batch and enable Batch by completing the prerequisites for projects and users .
  2. To get the permissions that you need to delete a job, ask your administrator to grant you the Batch Job Editor ( roles/batch.jobsEditor ) IAM role on the project. For more information about granting roles, see Manage access to projects, folders, and organizations .

    You might also be able to get the required permissions through custom roles or other predefined roles .

Delete a job

You can delete a job using the Google Cloud console, gcloud CLI, Batch API, Go, Java, Node.js, Python, or C++.

Console

To delete a job using the Google Cloud console, do the following:

  1. In the Google Cloud console, go to the Job listpage.

    Go to Job list

  2. Click the name of the job you created. The Job detailspage opens.

  3. Click Delete.

  4. In the Delete batch job?dialog, for the field, enter Delete .

  5. Click Delete.

    The Job listpage displays that the job is deleted.

gcloud

To delete a job using the gcloud CLI, use the gcloud batch jobs delete command .

 gcloud batch jobs delete JOB_NAME 
--location LOCATION 
 

Replace the following:

  • JOB_NAME : the name of the job.
  • LOCATION : the location of the job.

API

To delete a job using the Batch API, use the jobs.delete method :

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

Replace the following:

  • PROJECT_ID : the project ID of your project.
  • LOCATION : the location of the job.
  • JOB_NAME : the name of the job.

Go

Go

For more information, see the Batch Go API reference documentation .

To authenticate to Batch, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  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

For more information, see the Batch Java API reference documentation .

To authenticate to Batch, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  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

For more information, see the Batch Node.js API reference documentation .

To authenticate to Batch, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  /** 
 * 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

For more information, see the Batch Python API reference documentation .

To authenticate to Batch, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  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++

For more information, see the Batch C++ API reference documentation .

To authenticate to Batch, set up Application Default Credentials. For more information, see Set up authentication for a local development environment .

  #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 
 " 
 ; 
  
 } 
 

What's next

Create a Mobile Website
View Site in Mobile | Classic
Share by: