Delete subscriptions

You can delete Pub/Sub subscriptions with the Google Cloud console, Google Cloud CLI, client library, or Pub/Sub API.

This document discusses how to delete subscriptions in Pub/Sub.

Before you begin

Required roles and permissions

To get the permissions that you need to delete a subscription, ask your administrator to grant you the Pub/Sub Editor (roles/pubsub.editor) IAM role on your subscription or project that contains the subscription.

This predefined role contains the permissions required to delete a subscription. To see the exact permissions that are required, expand the Required permissions section:

Required permissions

  • pubsub.subscriptions.delete
  • pubsub.subscriptions.list
    • This permission is only required when deleting subscriptions using the Google Cloud console.

You might also be able to get these permissions with other custom roles or predefined Pub/Sub roles.

Delete subscriptions

If you try to create a subscription with the same name as the one that you just deleted, expect an error for a brief period. The newly created subscription is entirely independent of the previously deleted one. Messages that are intended for the old subscription are not delivered to the new subscription.

Console

  1. In the Google Cloud console, go to the Subscriptions page.

    Go to Subscriptions

  2. Select the subscription to delete.
  3. Click Delete.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. To delete a subscription, run the gcloud pubsub subscriptions delete command:

    gcloudpubsubsubscriptionsdeleteSUBSCRIPTION_ID

REST

To delete a subscription, use the projects.subscriptions.delete method:

Request:

The request must be authenticated with an access token in the Authorization header. To obtain an access token for the current Application Default Credentials: gcloud auth application-default print-access-token.

 DELETE https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID Authorization: Bearer ACCESS_TOKEN

Where:

  • PROJECT_ID is your project ID.
  • SUBSCRIPTION_ID is your subscription ID.
  • Response:

    If the request is successful, the response is an empty JSON object.

    Delete is an eventually consistent operation, so it might take time for other processes to see its effect.

    C++

    Before trying this sample, follow the C++ setup instructions in the Pub/Sub quickstart using client libraries. For more information, see the Pub/Sub C++ API reference documentation.

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

    namespacepubsub_admin=::google::cloud::pubsub_admin;namespacepubsub=::google::cloud::pubsub;[](pubsub_admin::SubscriptionAdminClientclient,std::stringconst&project_id,std::stringconst&subscription_id){autostatus=client.DeleteSubscription(pubsub::Subscription(project_id,subscription_id).FullName());// Note that kNotFound is a possible result when the library retries.if(status.code()==google::cloud::StatusCode::kNotFound){std::cout << "The subscription was not found\n";return;}if(!status.ok())throwstd::runtime_error(status.message());std::cout << "The subscription was successfully deleted\n";

    C#

    Before trying this sample, follow the C# setup instructions in the Pub/Sub quickstart using client libraries. For more information, see the Pub/Sub C# API reference documentation.

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

    usingGoogle.Cloud.PubSub.V1;publicclassDeleteSubscriptionSample{publicvoidDeleteSubscription(stringprojectId,stringsubscriptionId){SubscriberServiceApiClientsubscriber=SubscriberServiceApiClient.Create();SubscriptionNamesubscriptionName=SubscriptionName.FromProjectSubscription(projectId,subscriptionId);subscriber.DeleteSubscription(subscriptionName);}}

    Go

    Before trying this sample, follow the Go setup instructions in the Pub/Sub quickstart using client libraries. For more information, see the Pub/Sub Go API reference documentation.

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

    import("context""fmt""io""cloud.google.com/go/pubsub")funcdelete(wio.Writer,projectID,subIDstring)error{// projectID := "my-project-id"// subID := "my-sub"ctx:=context.Background()client,err:=pubsub.NewClient(ctx,projectID)iferr!=nil{returnfmt.Errorf("pubsub.NewClient: %w",err)}deferclient.Close()sub:=client.Subscription(subID)iferr:=sub.Delete(ctx);err!=nil{returnfmt.Errorf("Delete: %w",err)}fmt.Fprintf(w,"Subscription %q deleted.",subID)returnnil}

    Java

    Before trying this sample, follow the Java setup instructions in the Pub/Sub quickstart using client libraries. For more information, see the Pub/Sub Java API reference documentation.

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

    importcom.google.api.gax.rpc.NotFoundException;importcom.google.cloud.pubsub.v1.SubscriptionAdminClient;importcom.google.pubsub.v1.SubscriptionName;importjava.io.IOException;publicclassDeleteSubscriptionExample{publicstaticvoidmain(String...args)throwsException{// TODO(developer): Replace these variables before running the sample.StringprojectId="your-project-id";StringsubscriptionId="your-subscription-id";deleteSubscriptionExample(projectId,subscriptionId);}publicstaticvoiddeleteSubscriptionExample(StringprojectId,StringsubscriptionId)throwsIOException{try(SubscriptionAdminClientsubscriptionAdminClient=SubscriptionAdminClient.create()){SubscriptionNamesubscriptionName=SubscriptionName.of(projectId,subscriptionId);try{subscriptionAdminClient.deleteSubscription(subscriptionName);System.out.println("Deleted subscription.");}catch(NotFoundExceptione){System.out.println(e.getMessage());}}}}

    Node.js

    /** * TODO(developer): Uncomment this variable before running the sample. */// const subscriptionNameOrId = 'YOUR_SUBSCRIPTION_NAME_OR_ID';// Imports the Google Cloud client libraryconst{PubSub}=require('@google-cloud/pubsub');// Creates a client; cache this for further useconstpubSubClient=newPubSub();asyncfunctiondeleteSubscription(subscriptionNameOrId){// Deletes the subscriptionawaitpubSubClient.subscription(subscriptionNameOrId).delete();console.log(`Subscription ${subscriptionNameOrId} deleted.`);}

    Node.js

    /** * TODO(developer): Uncomment this variable before running the sample. */// const subscriptionNameOrId = 'YOUR_SUBSCRIPTION_NAME_OR_ID';// Imports the Google Cloud client libraryimport{PubSub}from'@google-cloud/pubsub';// Creates a client; cache this for further useconstpubSubClient=newPubSub();asyncfunctiondeleteSubscription(subscriptionNameOrId:string){// Deletes the subscriptionawaitpubSubClient.subscription(subscriptionNameOrId).delete();console.log(`Subscription ${subscriptionNameOrId} deleted.`);}

    PHP

    Before trying this sample, follow the PHP setup instructions in the Pub/Sub quickstart using client libraries. For more information, see the Pub/Sub PHP API reference documentation.

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

    use Google\Cloud\PubSub\PubSubClient;/** * Creates a Pub/Sub subscription. * * @param string $projectId The Google project ID. * @param string $subscriptionName The Pub/Sub subscription name. */function delete_subscription($projectId, $subscriptionName){ $pubsub = new PubSubClient([ 'projectId' => $projectId, ]); $subscription = $pubsub->subscription($subscriptionName); $subscription->delete(); printf('Subscription deleted: %s' . PHP_EOL, $subscription->name());}

    Python

    Before trying this sample, follow the Python setup instructions in the Pub/Sub quickstart using client libraries. For more information, see the Pub/Sub Python API reference documentation.

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

    fromgoogle.cloudimportpubsub_v1# TODO(developer)# project_id = "your-project-id"# subscription_id = "your-subscription-id"subscriber=pubsub_v1.SubscriberClient()subscription_path=subscriber.subscription_path(project_id,subscription_id)# Wrap the subscriber in a 'with' block to automatically call close() to# close the underlying gRPC channel when done.withsubscriber:subscriber.delete_subscription(request={"subscription":subscription_path})print(f"Subscription deleted: {subscription_path}.")

    Ruby

    Before trying this sample, follow the Ruby setup instructions in the Pub/Sub quickstart using client libraries. For more information, see the Pub/Sub Ruby API reference documentation.

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

    # subscription_id = "your-subscription-id"pubsub=Google::Cloud::Pubsub.newsubscription=pubsub.subscriptionsubscription_idsubscription.deleteputs"Subscription #{subscription_id} deleted."

    What's next