Cloud Storage 订阅是一种导出订阅,可在收到消息时将其写入现有的 Cloud Storage 存储桶。您无需配置单独的订阅方客户端。您可以使用 Google Cloud 控制台、Google Cloud CLI、客户端库或 Pub/Sub API 创建、更新、列出、分离或删除 Cloud Storage 订阅。
如果不使用 Cloud Storage 订阅类型,您需要拉取或推送订阅以及订阅者(例如 Dataflow),以读取消息并将其写入 Cloud Storage 存储桶。如果消息不需要在存储到 Cloud Storage 存储桶之前进行额外处理,则无需运行 Dataflow 作业的开销;您可以改用 Cloud Storage 订阅。
不过,对于需要在将数据存储在 Cloud Storage 存储桶之前进行一些数据转换的 Pub/Sub 系统,我们仍建议使用 Dataflow 流水线。
如需了解如何使用 Dataflow 将经过转换的数据从 Pub/Sub 流式传输到 Cloud Storage,请参阅使用 Dataflow 从 Pub/Sub 流式传输消息。
准备工作
在阅读本文档之前,请确保您熟悉以下内容:
Pub/Sub 的工作原理以及不同的 Pub/Sub 术语。
不同订阅类型以及为何要使用 Cloud Storage 订阅。
Cloud Storage 的运作方式。
Cloud Storage 订阅工作流
下图显示了 Cloud Storage 订阅与 Cloud Storage 之间的工作流。

图 1. Cloud Storage 订阅的工作流
下面简要介绍了引用图 1 的工作流程:
Pub/Sub 使用 Cloud Storage API 将数据发送到 Cloud Storage 存储桶。写入操作成功完成后,该 API 会返回
OK响应。系统会将消息分批发送到 Cloud Storage 存储桶。单个批次对应于存储在 Cloud Storage 存储桶中的对象。您可以根据对象大小和对象创建以来经过的时间来配置批处理设置。
将对象写入 Cloud Storage 存储桶的工作流需要两个
OK响应。当消息成功写入对象时,系统会发送第一个OK响应。当包含消息的对象完成时,系统会发送第二个OK响应。只有在包含消息的 Cloud Storage 对象成功完成最终处理后,消息才会显示在存储桶中。如果写入操作期间发生任何失败,系统会对 Pub/Sub 消息本身发送负确认。然后,系统会重新发送消息。如果消息写入操作失败次数足够多,并且您在订阅上配置了死信主题,则系统会将消息移至死信主题。
Cloud Storage 订阅的属性
创建 Cloud Storage 订阅时,您必须指定一些其他属性。这些属性包括常见的订阅属性、文件名和格式要求、存储要求等。如需详细了解这些属性,请参阅 Cloud Storage 订阅属性。
处理消息故障
如果无法将 Pub/Sub 消息写入 Cloud Storage 存储桶,则无法确认该消息。如需转发此类无法传送的消息,请在 Cloud Storage 订阅上配置死信主题。
如果 Pub/Sub 无法将消息写入 Cloud Storage,则会以类似于推送退避行为的方式退避消息传送。
配额
配额限制适用于每个区域的 Cloud Storage 订阅者吞吐量。如需了解 Cloud Storage 订阅的配额,请参阅 Pub/Sub 配额和限制中的导出订阅者配额限制。
价格
如需了解 Cloud Storage 订阅的价格,请参阅 Pub/Sub 价格页面。
后续步骤
- 创建 Cloud Storage 订阅。
排查 Cloud Storage 订阅问题。
探索 Pub/Sub 配置工具: