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 订阅,Pub/Sub 服务账号必须有权写入特定 Cloud Storage 存储桶并读取存储桶元数据。
如需了解详情,请参阅向 Pub/Sub 服务账号分配 Cloud Storage 角色。
处理消息故障
如果 Pub/Sub 消息无法写入 Cloud Storage 存储桶,则无法确认该消息。如需转发此类无法传送的消息,请在 Cloud Storage 订阅上配置死信主题。
如果 Pub/Sub 无法将消息写入 Cloud Storage,则会以类似于推送退避行为的方式退避消息传送。
配额
配额限制适用于每个区域的 Cloud Storage 订阅者吞吐量。如需了解 Cloud Storage 订阅的配额,请参阅 Pub/Sub 配额和限制中的导出订阅者配额限制。
价格
如需了解 Cloud Storage 订阅的价格,请参阅 Pub/Sub 价格页面。
后续步骤
创建 Cloud Storage 订阅。
探索 Pub/Sub 配置工具: