This document shows you how to roll back a schema for a Pub/Sub topic.
The rollback operation lets you create another schema revision with the exact schema definition as the specified previous revision.
Before you begin
- Understand how Pub/Sub schemas work.
- Create a schema.
Required roles and permissions
To get the permissions that you need to roll back schemas and manage them,
ask your administrator to grant you the
Pub/Sub Editor (roles/pubsub.editor
) IAM role on your project.
For more information about granting roles, see Manage access to projects, folders, and organizations.
This predefined role contains the permissions required to roll back schemas and manage them. To see the exact permissions that are required, expand the Required permissions section:
Required permissions
The following permissions are required to roll back schemas and manage them:
-
Create schema:
pubsub.schemas.create
-
Attach schema to topic:
pubsub.schemas.attach
-
Commit a schema revision:
pubsub.schemas.commit
-
Delete a schema or a schema revision:
pubsub.schemas.delete
-
Get a schema or schema revisions:
pubsub.schemas.get
-
List schemas:
pubsub.schemas.list
-
List schema revisions:
pubsub.schemas.listRevisions
-
Rollback a schema:
pubsub.schemas.rollback
-
Validate a message:
pubsub.schemas.validate
-
Get the IAM policy for a schema:
pubsub.schemas.getIamPolicy
-
Configure the IAM policy for a schema:
pubsub.schemas.setIamPolicy
You might also be able to get these permissions with custom roles or other predefined roles.
You can grant roles and permissions to principals such as users, groups, domains, or service accounts. You can create a schema in one project and attach it to a topic located in a different project. Ensure that you have the required permissions for each project.
Roll back a schema revision
You can roll back a schema using the Google Cloud console, the gcloud CLI, the Pub/Sub API, or the Cloud Client Libraries. Follow these steps:
Console
In the Google Cloud console, go to the Pub/Sub schemas page.
Click the name of an existing schema.
The Schema details page for the schema opens.
Click Roll back.
The Roll back schema dialog opens.
Select the revision to which you want to roll back your schema.
Click Confirm to save the rollback operation.
A new revision is created with the schema specified in the rollback operation.
In the Schema details page, select the latest version of the schema and the version you selected as source for the rollback operation.
Click View diff.
You can verify that the two schemas are identical.
You can use the schema revision that you just created as the last revision for validating a topic by updating the Last revision allowed field.
gcloud
gcloud pubsub schemas rollback SCHEMA_ID \ --revision-id=REVISION_ID
Where:
- REVISION_ID is the revision to which you want to roll back.
REST
To roll back a schema, send a POST request like the following:
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/schemas/SCHEMA_ID:rollback Authorization: Bearer $(gcloud auth application-default print-access-token) Content-Type: application/json --data @response-body.json
Specify the following fields in the request body:
{ "revisionId": REVISION_KD }
Where:
- REVISION_KD is the ID of the revision to which to roll back.
The response body should contain a JSON representation of a schema resource.
C++
Before trying this sample, follow the C++ setup instructions in Quickstart: Using Client Libraries. For more information, see the Pub/Sub C++ API reference documentation.
Go
Before trying this sample, follow the Go setup instructions in Quickstart: Using Client Libraries. For more information, see the Pub/Sub Go API reference documentation.
Java
Before trying this sample, follow the Java setup instructions in Quickstart: Using Client Libraries. For more information, see the Pub/Sub Java API reference documentation.
Python
Before trying this sample, follow the Python setup instructions in Quickstart: Using Client Libraries. For more information, see the Pub/Sub Python API reference documentation.
Node.js
Before trying this sample, follow the Node.js setup instructions in Quickstart: Using Client Libraries. For more information, see the Pub/Sub Node.js API reference documentation.
Node.js
Before trying this sample, follow the Node.js setup instructions in Quickstart: Using Client Libraries. For more information, see the Pub/Sub Node.js API reference documentation.
What's next
- Delete a schema revision
- Delete a schema
- List schemas
- List revisions of a schema
- Subscribe to a topic with a schema