After you create a subscription, you can change the delivery method to push, pull, or export.
Before you begin
- Create one of the supported subscriptions.
Required roles and permissions
To get the permissions that you need to change subscription types and manage them,
ask your administrator to grant you the
Pub/Sub Editor (roles/pubsub.editor
) IAM role on your topic or project.
For more information about granting roles, see Manage access to projects, folders, and organizations.
This predefined role contains the permissions required to change subscription types and manage them. To see the exact permissions that are required, expand the Required permissions section:
Required permissions
The following permissions are required to change subscription types and manage them:
-
Pull from a subscription:
pubsub.subscriptions.consume
-
Create a subscription:
pubsub.subscriptions.create
-
Delete a subscription:
pubsub.subscriptions.delete
-
Get a subscription:
pubsub.subscriptions.get
-
List a subscription:
pubsub.subscriptions.list
-
Update a subscription:
pubsub.subscriptions.update
-
Attach a subscription to a topic:
pubsub.topics.attachSubscription
-
Get the IAM policy for a subscription:
pubsub.subscriptions.getIamPolicy
-
Configure the IAM policy for a subscription:
pubsub.subscriptions.setIamPolicy
You might also be able to get these permissions with custom roles or other predefined roles.
You can configure access control at the project level and at the individual resource level. You can create a subscription in one project and attach it to a topic located in a different project. Ensure that you have the required permissions for each project.
Modify delivery methods
You can switch between different subscription types.
Console
To modify a subscription, complete the following steps.
- In the Google Cloud console, go to the Subscriptions page.
- Click more_vert next to the subscription to update.
- In the Delivery type, choose a delivery option.
- Fill in other subscription properties as required.
- Click Update.
gcloud
-
In the Google Cloud console, 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.
-
To modify the push endpoint URL, run the
gcloud pubsub subscriptions modify-push-config
command:gcloud pubsub subscriptions modify-push-config SUBSCRIPTION_ID \ --push-endpoint=PUSH_ENDPOINT
If the subscription is already using pull delivery, setting the push endpoint switches the delivery method to push delivery.
You can switch from push to pull delivery by changing the push endpoint to an empty string.
REST
To modify the push configurations of a subscription, use the
projects.subscriptions.modifyPushConfig
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
.
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID:modifyPushConfig Authorization: Bearer ACCESS_TOKEN
Request body:
{ "pushConfig": { "pushEndpoint": "PUSH_ENDPOINT" } }
Where:
https://myproject.appspot.com/myhandler
.Response:
If the request is successful, the response is an empty JSON object.
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.
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.
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.
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.
Node.js
Node.js
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.
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.
What's next
- Create or modify a subscription with
gcloud
commands. - Create or modify a subscription with REST APIs.