订阅方使用精简版订阅从 精简版主题。创建精简版订阅时,您可以将其附加到精简版主题。 您可以将多个精简版订阅附加到单个精简版主题。
订阅分为两种类型:
- 标准订阅。如果您有订阅,请创建标准订阅 客户端。
- 导出订阅。根据需要创建导出订阅 将精简版消息导出到 Pub/Sub。如需了解详情,请参阅将 Pub/Sub Lite 消息导出到 Pub/Sub。
精简版订阅的属性
可用区级精简版主题的订阅与 区域级精简版主题,但以下情况除外:
资源名称中使用的位置类型(可用区或区域)。地区位置示例为
us-central1
;可用区位置示例为us-central1-a
。可靠性。请参阅精简版主题中的数据复制 ,详细了解区域级和可用区级主题之间的可靠性差异。
邮件的递送要求
在向存储空间写入消息时出现暂时性故障,会导致发布者 请尝试重新发送消息。此类重试对最终用户来说是透明的。 精简版订阅具有传送要求属性,可更改订阅对这些消息重试的响应方式。您可以设置此属性 更改为以下两个选项之一:
立即传送消息。启用此选项后,订阅方客户端会在消息到达服务器后接收所有消息。此过程不依赖于写入磁盘的消息的状态。偏移量不会重复使用,但在执行跳转操作后,偏移量未写入存储空间的消息可能无法重新读取。
存储后传送消息。启用此选项后,订阅者只有在消息写入磁盘后才能收到消息。这些消息 保证在还原操作之后可重新读取。启用此选项会增加从发布端到订阅端接收消息的端到端延迟时间。
订阅命名准则
Pub/Sub 精简版资源名称用于唯一标识 Pub/Sub 精简版资源(例如主题、订阅或预订)。资源名称必须采用以下格式:
projects/project-identifier/collection/ID
project-identifier
:必须是项目 ID 或项目编号,可从 Google Cloud 控制台。例如,my-cool-project
是项目 ID。123456789123
是项目编号。collection
:必须是topics
、subscriptions
或reservations
中的一个。ID
:必须符合以下准则:- 不以字符串
goog
开头 - 以字母开头
- 包含 3 到 255 个字符
- 仅包含以下字符:字母
[A-Za-z]
、数字[0-9]
、短划线-
、下划线_
、英文句号.
、波形符~
、加号+
和百分号%
您可以在资源名称中使用上述列表中的特殊字符,而无需进行网址编码。不过,在网址中使用任何其他特殊字符时,您必须确保对这些字符正确进行编码或解码。例如,
mi-tópico
是无效的 ID,不过,mi-t%C3%B3pico
是有效的。在进行 REST 调用时,此格式非常重要。- 不以字符串
创建精简版订阅
精简版订阅必须与 精简版订阅所关联到的精简版主题。
如需创建精简版主题,请参阅创建和管理精简版主题。
如需查看可用位置的列表,请参阅 Pub/Sub 精简版位置。
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Pub/Sub Lite API 创建精简版订阅。
如需了解如何创建导出订阅,请参阅将 Pub/Sub Lite 消息导出到 Pub/Sub。
控制台
前往精简版订阅页面。
点击创建精简版订阅。
输入精简版订阅 ID。
选择要接收消息的精简版主题。
选择立即传送消息或在存储后传送消息。
选择起始偏移类型。
选择传送类型。
点击创建。
gcloud
如需创建精简版订阅,请使用 gcloud pubsub lite-subscriptions create
命令:
gcloud pubsub lite-subscriptions create SUBSCRIPTION_ID \ --location=LOCATION \ --topic=TOPIC_ID \ --delivery-requirement=DELIVERY_REQUIREMENT
替换以下内容:
SUBSCRIPTION_ID:精简版订阅的 ID
LOCATION:Pub/Sub 精简版支持的位置的名称
TOPIC_ID:要附加到精简版订阅的精简版主题的 ID
DELIVERY_REQUIREMENT:
deliver-after-stored
或deliver-immediately
如果请求成功,命令行会显示一条确认消息:
Created [SUBSCRIPTION_ID].
协议
要创建精简版订阅,请发送 POST
请求,如下所示:
POST https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID Authorization: Bearer $(gcloud auth print-access-token)
替换以下内容:
REGION:要在其中存储精简版订阅的区域
PROJECT_NUMBER:要在其中创建精简版订阅的项目的项目编号
LOCATION:Pub/Sub 精简版支持的位置的名称
SUBSCRIPTION_ID:精简版订阅的 ID
在请求正文中指定以下字段:
{ "topic": projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID, "deliveryConfig": { "deliveryRequirement": DELIVERY_REQUIREMENT, } }
将 DELIVERY_REQUIREMENT 替换为 deliver-after-stored
或 deliver-immediately
。
如果请求成功,则响应是 JSON 格式的精简版订阅:
{ "deliveryConfig": { "deliveryRequirement": DELIVERY_REQUIREMENT, } "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID", "topic": "projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID", }
Go
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Go 设置说明进行操作。
Java
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Java 设置说明进行操作。
Python
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Python 设置说明进行操作。
创建精简版订阅后,您可以从精简版订阅接收消息。
更新精简版订阅
您可以通过 Google Cloud 控制台更新精简版订阅, Google Cloud CLI 或 Pub/Sub Lite API
控制台
前往精简版订阅页面。
点击精简版订阅 ID。
在精简版订阅详情页面中,点击修改。
gcloud
要更新精简版订阅,请使用 gcloud pubsub lite-subscriptions update
命令:
gcloud pubsub lite-subscriptions update SUBSCRIPTION_ID \ --location=LOCATION \ --delivery-requirement=DELIVERY_REQUIREMENT
替换以下内容:
SUBSCRIPTION_ID:精简版订阅的 ID
LOCATION:精简版订阅所在的位置名称
DELIVERY_REQUIREMENT:
deliver-after-stored
或deliver-immediately
如果请求成功,命令行将显示精简版订阅:
deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID
协议
要更新精简版订阅,请发送 PATCH
请求,如下所示:
PATCH https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID?updateMask=deliveryConfig.deliveryRequirement Authorization: Bearer $(gcloud auth print-access-token)
替换以下内容:
REGION:要在其中存储精简版订阅的区域
PROJECT_NUMBER:具有精简版订阅的项目的项目编号
LOCATION:精简版订阅所在的位置名称
SUBSCRIPTION_ID:精简版订阅的 ID
在请求正文中指定以下字段:
{ "deliveryConfig": { "deliveryRequirement": DELIVERY_REQUIREMENT, } }
将 DELIVERY_REQUIREMENT 替换为 deliver-after-stored
或 deliver-immediately
。
如果请求成功,则响应是 JSON 格式的精简版订阅:
{ "deliveryConfig": { "deliveryRequirement": DELIVERY_REQUIREMENT, } "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID", "topic": "projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID", }
Go
在运行此示例之前,请按照 Pub/Sub Lite 客户端库。
Java
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Java 设置说明进行操作。
Python
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Python 设置说明进行操作。
查看精简版订阅详情
如需获取有关精简版订阅的详细信息,您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Pub/Sub Lite API。
控制台
前往精简版订阅页面。
点击精简版订阅 ID。
在精简版订阅详情页面中,点击详细信息标签页。
gcloud
要获取有关精简版订阅的详细信息,请使用 gcloud pubsub lite-subscriptions describe
命令:
gcloud pubsub lite-subscriptions describe SUBSCRIPTION_ID \ --location=LOCATION
替换以下内容:
SUBSCRIPTION_ID:精简版订阅的 ID
LOCATION:精简版订阅所在的位置名称
如果请求成功,命令行将显示精简版主题:
deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID
协议
如需获取有关精简版订阅的详细信息,请发送 GET
请求,如下所示:
GET https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID Authorization: Bearer $(gcloud auth print-access-token)
替换以下内容:
REGION:要在其中存储精简版订阅的区域
PROJECT_NUMBER:具有精简版订阅的项目的项目编号
LOCATION:精简版订阅所在的位置名称
SUBSCRIPTION_ID:精简版订阅的 ID
如果请求成功,则响应是 JSON 格式的精简版主题:
{ "deliveryConfig": { "deliveryRequirement": DELIVERY_REQUIREMENT, } "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID", "topic": "projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID", }
Go
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Go 设置说明进行操作。
Java
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Java 设置说明进行操作。
Python
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Python 设置说明进行操作。
列出精简版订阅
您可以列出项目中的精简订阅或精简版主题的精简版订阅。
列出项目中的精简版订阅
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Pub/Sub Lite API 列出项目中的精简版订阅。
控制台
前往精简版订阅页面。
gcloud
- 如需列出项目中的精简版订阅,请使用
gcloud pubsub lite-subscriptions list
命令:
gcloud pubsub lite-subscriptions list \ --location=LOCATION
将 LOCATION 替换为精简版订阅的位置名称。
如果请求成功,命令行将显示精简版订阅:
--- deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID --- deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID
协议
- 如需列出项目中的精简版订阅,请发送
GET
请求,如下所示:
GET https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/subscriptions Authorization: Bearer $(gcloud auth print-access-token)
替换以下内容:
REGION:要在其中存储精简版订阅的区域
PROJECT_NUMBER:具有精简版订阅的项目的项目编号
如果请求成功,则响应是 JSON 格式的精简版主题:
{ "subscriptions": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID" }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID" } ] }
Go
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Go 设置说明进行操作。
Java
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Java 设置说明进行操作。
Python
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Python 设置说明进行操作。
列出精简版主题的精简版订阅
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Pub/Sub Lite API 列出精简版订阅。
控制台
前往精简版主题页面。
选择精简版主题 ID。
在精简版主题详情页面中,精简版订阅部分包含精简版主题的一系列订阅。
gcloud
- 如需列出主题的精简版订阅,请使用
gcloud pubsub lite-topics list-subscriptions
命令:
gcloud pubsub lite-topics list-subscriptions TOPIC_ID \ --location=LOCATION
替换以下内容:
TOPIC_ID:附加精简版订阅的精简版主题的 ID
LOCATION:精简版订阅所在的位置名称
如果请求成功,命令行将显示精简版订阅:
--- deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID --- deliveryConfig: deliveryRequirement: DELIVERY_REQUIREMENT name: projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID topic: projects/PROJECT_NUMBER/locations/LOCATION/topics/TOPIC_ID
协议
- 要列出精简版主题的精简版订阅,请按如下所示发送
GET
请求:
GET https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/lite-topics/TOPIC_ID/subscriptions Authorization: Bearer $(gcloud auth print-access-token)
替换以下内容:
REGION:要在其中存储精简版订阅的区域
PROJECT_NUMBER:具有精简版订阅的项目的项目编号
LOCATION:精简版订阅所在的位置名称
TOPIC_ID:附加精简版订阅的精简版主题的 ID
如果请求成功,则响应是以 JSON 格式列出的精简版订阅列表:
{ "subscriptions": [ { "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID" }, { "name": "projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID" } ] }
Go
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Go 设置说明进行操作。
Java
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Java 设置说明进行操作。
Python
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Python 设置说明进行操作。
删除精简版订阅
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 Pub/Sub Lite API 删除精简版订阅。
控制台
前往精简版订阅页面。
点击精简版订阅 ID。
在精简版订阅详情页面中,点击删除。
在显示的对话框中,点击删除以确认您要删除精简版订阅。
gcloud
要删除精简版订阅,请使用 gcloud pubsub lite-subscriptions delete
命令:
运行
delete
命令:gcloud pubsub lite-subscriptions delete SUBSCRIPTION_ID \ --location=LOCATION
替换以下内容:
SUBSCRIPTION_ID:精简版订阅的 ID
LOCATION:精简版订阅所在的位置名称
如需确认,请输入
Y
。
如果请求成功,命令行会显示一条确认消息:
Deleted subscription [SUBSCRIPTION_ID].
协议
- 要删除精简版主题,请发送
DELETE
请求,如下所示:
DELETE https://REGION-pubsublite.googleapis.com/v1/admin/projects/PROJECT_NUMBER/locations/LOCATION/subscriptions/SUBSCRIPTION_ID Authorization: Bearer $(gcloud auth print-access-token)
替换以下内容:
REGION:要在其中存储精简版订阅的区域
PROJECT_NUMBER:具有精简版订阅的项目的项目编号
LOCATION:精简版订阅所在的位置名称
SUBSCRIPTION_ID:精简版订阅的 ID
如果请求成功,响应将为空的 JSON 对象。
Go
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Go 设置说明进行操作。
Java
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Java 设置说明进行操作。
Python
在运行此示例之前,请按照 Pub/Sub Lite 客户端库中的 Python 设置说明进行操作。
后续步骤
- 创建和管理精简版主题。
- 向精简版主题发布消息。
- 接收精简版订阅的消息。