本文档介绍如何创建拉取订阅。您可以使用 控制台、Google Cloud CLI、客户端库或 Pub/Sub API 创建拉取订阅。 Google Cloud
准备工作
所需角色和权限
如需获得创建拉取订阅所需的权限,请让您的管理员为您授予项目的Pub/Sub Editor (roles/pubsub.editor) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色可提供 创建拉取订阅所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
创建拉取订阅需要以下权限:
-
pubsub.subscriptions.create针对项目的权限 -
pubsub.topics.attachSubscription针对主题
跨项目订阅
如果您在一个项目中为另一个项目中的主题创建订阅,则必须对创建订阅的项目具有 pubsub.subscriptions.create 权限,并且对该主题具有 pubsub.topics.attachSubscription 权限。
拉取订阅属性
拉取订阅支持所有 常见的订阅属性。拉取订阅还支持仅传送一次 属性,下一部分将对此进行介绍。
仅传送一次
仅传送一次 。如果设置此属性,Pub/Sub 会履行 仅传送一次的保证。 如果未指定,则订阅支持 至少传送一次每条消息。
创建拉取订阅
以下示例演示了如何使用提供的默认设置创建使用拉取传送的订阅。
控制台
如需创建拉取订阅,请完成以下步骤。
在 Google Cloud 控制台中,前往 订阅 页面。
- 点击创建订阅 。
在订阅 ID 字段中,输入名称。
如需了解如何命名订阅,请参阅 主题或订阅命名指南。
- 从下拉菜单中选择或创建一个主题。订阅 将接收来自该主题的消息。
- 将传送类型 保留为拉取 。
- 保留所有其他默认值。
- 点击创建 。
您还可以通过主题 部分创建订阅。 此快捷方式可帮助您将主题与订阅关联。
gcloud
-
在 Google Cloud 控制台中,激活 Cloud Shell。
Cloud Shell 会话随即会在控制台的底部启动,并显示命令行提示符。 Google Cloud Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境 。该会话可能需要几秒钟来完成初始化。
-
如需创建拉取订阅,请运行
gcloud pubsub subscriptions create命令。gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_ID
替换以下内容:
SUBSCRIPTION_ID:新拉取订阅的名称或 ID。TOPIC_ID:主题的名称或 ID。
REST
如需创建拉取订阅,请使用
projects.subscriptions.create 方法:
请求:
必须使用 Authorization 标头中的访问令牌对请求进行身份验证。如需获取当前应用默认凭据的
访问令牌,请运行以下命令:
gcloud auth application-default print-access-token。
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID Authorization: Bearer ACCESS_TOKEN
请求正文:
{ "topic": "projects/PROJECT_ID/topics/TOPIC_ID" }
其中:
- PROJECT_ID 是项目 ID。
- SUBSCRIPTION_ID 是订阅 ID。
- TOPIC_ID 是主题 ID。
回答:
{
"name": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID",
"topic": "projects/PROJECT_ID/topics/TOPIC_ID",
"pushConfig": {},
"ackDeadlineSeconds": 10,
"messageRetentionDuration": "604800s",
"expirationPolicy": {
"ttl": "2678400s"
}
}C++
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 C++ 设置说明进行操作。如需了解详情,请参阅 Pub/Sub C++ API 参考文档。
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 参考文档。
Node.js
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 Node.js 设置说明进行操作。如需了解详情,请参阅 Pub/Sub Node.js API 参考文档。
Node.ts
在尝试此示例之前,请按照 《快速入门:使用客户端库》中的 Node.js 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Node.js API 参考文档。
PHP
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 PHP 设置说明进行操作。如需了解详情,请参阅 Pub/Sub PHP API 参考文档。
Python
在尝试此示例之前,请按照《快速入门:使用客户端库》中的 Python 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Python API 参考文档。
Ruby
以下示例使用 Ruby Pub/Sub 客户端库 v3。如果您仍在使用 v2 库,请参阅 迁移到 v3 的指南。 如需查看 Ruby v2 代码示例列表,请参阅 已废弃的代码示例。
在尝试此示例之前,请按照 《快速入门:使用客户端库》中的 Ruby 设置说明进行操作。 如需了解详情,请参阅 Pub/Sub Ruby API 参考文档。
监控拉取订阅
Cloud Monitoring 提供了许多指标来 监控订阅。
如需查看与 Pub/Sub 相关的所有可用指标 及其说明的列表,请参阅 Pub/Sub 的 Monitoring 文档。
您还可以从 Pub/Sub 内部 监控订阅。
后续步骤
- 接收来自拉取订阅的消息。
- 使用
gcloud命令创建或修改订阅。 - 使用 REST API 创建或修改订阅。