Cloud Storage 订阅是一种导出订阅,可在收到消息时将其写入现有的 Cloud Storage 存储桶。您无需配置单独的订阅者客户端。您可以使用 Google Cloud 控制台、Google Cloud CLI、客户端库或 Pub/Sub API 来创建、更新、列出、分离或删除 Cloud Storage 订阅。
如果没有 Cloud Storage 订阅类型,您需要拉取订阅或推送订阅,以及读取消息并将其写入 Cloud Storage 存储桶的订阅者(例如 Dataflow)。如果消息在存储在 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 订阅上配置死信主题。
配额
配额限制适用于每个区域的 Cloud Storage 订阅者吞吐量。如需了解 Cloud Storage 订阅的配额,请参阅 Pub/Sub 配额和限制中的导出订阅者配额限制。
价格
如需了解 Cloud Storage 订阅的价格,请参阅 Pub/Sub 价格页面。
后续步骤
创建 Cloud Storage 订阅。
探索 Pub/Sub 配置工具: