删除主题

本文档介绍如何删除 Pub/Sub 主题。如需删除 主题,您可以使用 Google Cloud 控制台、Google CLI、客户端库、 或 Pub/Sub API。

准备工作

所需的角色和权限

如需获得删除主题和管理主题所需的权限,请让您的管理员为您授予主题或项目的 Pub/Sub Editor(roles/pubsub.editor) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含 删除主题和管理主题所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需删除主题和管理主题,您需要具备以下权限:

  • 创建主题: pubsub.topics.create
  • 删除主题: pubsub.topics.delete
  • 将订阅与主题分离: pubsub.topics.detachSubscription
  • 获取主题: pubsub.topics.get
  • 列出主题: pubsub.topics.list
  • 发布到主题: pubsub.topics.publish
  • 更新主题: pubsub.topics.update
  • 获取主题的 IAM 政策: pubsub.topics.getIamPolicy
  • 配置主题的 IAM 政策pubsub.topics.setIamPolicy

您也可以使用自定义角色或其他预定义角色来获取这些权限。

您可以在项目级层和个别资源级层配置访问权限控制条件。您可以在一个项目中创建订阅,并将其附加到位于不同项目中的主题。 请确保您对每个项目都拥有所需的权限。

删除主题

当您删除某主题时,其订阅不会被删除。订阅中的积压消息仍可供订阅者使用。在主题被删除后,其订阅的主题名称为 _deleted-topic_。如果您尝试创建与刚删除的主题名称相同的主题,则在短时间内会出现错误。

控制台

  1. 在 Google Cloud 控制台中,前往 Pub/Sub 主题 页面。

  2. 转到“主题”

  3. 选择一个主题,然后点击 更多操作

  4. 点击删除

    此时将显示删除主题 窗口。

  5. 输入 delete,然后点击删除

gcloud

  1. 在 Google Cloud 控制台中,激活 Cloud Shell。

    激活 Cloud Shell

    Google Cloud Cloud Shell 会话随即会在控制台的底部启动,并显示命令行提示符。Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境 。该会话可能需要几秒钟来完成初始化。

  2. 如需删除主题,请使用 gcloud pubsub topics delete 命令:

    gcloud pubsub topics delete TOPIC_ID

REST

如需删除主题,请使用 projects.topics.delete 方法:

请求:

必须使用 Authorization 标头中的访问令牌对请求进行身份验证。如需获取当前 应用默认凭据的访问令牌,请运行以下命令:gcloud auth application-default print-access-token

DELETE https://pubsub.googleapis.com/v1/projects/PROJECT_ID/topics/TOPIC_ID
Authorization: Bearer ACCESS_TOKEN
  

其中:

  • PROJECT_ID 是项目 ID。
  • TOPIC_ID 是主题 ID。

回答:

如果请求成功,响应将为空的 JSON 对象。

C++

在尝试此示例之前,请按照《快速入门:使用客户端库》中的 C++ 设置说明进行操作。如需了解详情,请参阅 Pub/Sub C++ API 参考文档

namespace pubsub = ::google::cloud::