本文档介绍如何回滚 Pub/Sub 主题的架构。
通过回滚操作,您可以创建另一个架构修订版本,其架构定义与指定的先前修订版本完全相同。
准备工作
- 了解 Pub/Sub 架构的工作原理。
- 创建架构。
所需的角色和权限
如需获得回滚和管理架构所需的权限,请让您的管理员为您授予项目的Pub/Sub Editor (roles/pubsub.editor) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含 回滚和管理架构所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
如需回滚和管理架构,需要具备以下权限:
-
创建架构:
pubsub.schemas.create -
将架构关联到主题:
pubsub.schemas.attach -
提交架构修订版本:
pubsub.schemas.commit -
删除架构或架构修订版本:
pubsub.schemas.delete -
获取架构或架构修订版本:
pubsub.schemas.get -
列出架构:
pubsub.schemas.list -
列出架构修订版本:
pubsub.schemas.listRevisions -
回滚架构:
pubsub.schemas.rollback -
验证消息:
pubsub.schemas.validate -
获取架构的 IAM 政策:
pubsub.schemas.getIamPolicy -
配置架构的 IAM 政策:
pubsub.schemas.setIamPolicy
您可以向用户、群组、网域或服务账号等正文授予角色和权限。您可以在一个项目中创建架构,并将其关联到位于另一个项目中的主题。 请确保您对每个项目都拥有所需的权限。
回滚架构修订版本
您可以使用 Google Cloud 控制台、gcloud CLI、Pub/Sub API 或 Cloud 客户端库回滚架构。请按照以下步骤操作:
控制台
在 Google Cloud 控制台中,前往 Pub/Sub 架构 页面。
点击现有架构的名称。
系统会打开该架构的架构详情 页面。
点击回滚 。
系统会打开回滚架构 对话框。
选择要将架构回滚到的修订版本。
点击确认 以保存回滚操作。
系统会使用回滚操作中指定的架构创建一个新修订版本。
在架构详情 页面中,选择架构的最新版本以及您选择作为回滚操作来源的版本。
点击查看差异 。
您可以验证这两个架构是否相同。
您可以将刚刚创建的架构修订版本用作验证主题的最后一个修订版本,方法是更新允许的最后一个修订版本 字段。
gcloud
gcloud pubsub schemas rollback SCHEMA_ID \ --revision-id=REVISION_ID
其中:
- REVISION_ID 是您要回滚到的修订版本。
REST
如需回滚架构,请发送如下所示的 POST 请求:
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
在请求正文中指定以下字段:
{ "revisionId": REVISION_KD }
其中:
- REVISION_KD 是要回滚到的修订版本的 ID。
响应正文应包含 架构资源的 JSON 表示法。
C++
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 C++ 设置说明进行操作。如需了解详情,请参阅 Pub/Sub C++ API 参考文档。
Go
以下示例使用 Go Pub/Sub 客户端库的主要版本 (v2)。如果您仍在使用 v1 库,请参阅 迁移到 v2 的指南。 如需查看 v1 代码示例的列表,请参阅 已废弃的代码示例。
在尝试此示例之前,请按照 《快速入门:使用客户端库》中的 Go 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Go API 参考文档。
Java
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 Java 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Java API 参考文档。
Python
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 Python 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Python API 参考文档。
Node.js
在尝试此示例之前,请按照 《快速入门:使用客户端库》中的 Node.js 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Node.js API 参考文档。
Node.js
在尝试此示例之前,请按照 《快速入门:使用客户端库》中的 Node.js 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Node.js API 参考文档。