配置 Pub/Sub 主题和订阅

在应用设计中心,您可以配置 Pub/Sub 主题和订阅,以提供异步、可伸缩的消息传递,从而将生成消息的服务与处理消息的服务分离开来。您可以根据 terraform-google-pubsub Terraform 模块为主题和订阅自定义组件连接和配置参数。

组件连接

下表列出了您可以连接到 Pub/Sub 主题或订阅的组件,以及对应用及其生成的 Terraform 代码所做的相应更新。

关联的组成部分

应用更新

背景信息

Compute Engine 实例模板

  • Compute Engine 实例可以向 Pub/Sub 主题发布消息,也可以从中接收消息。
  • Pub/Sub 主题 ID 会添加到 Compute Engine 实例模板元数据中。
实例模板

服务账号

  • 该服务账号可以管理 Pub/Sub 主题,并从订阅中拉取消息。
  • roles/pubsub.editor 角色已添加到服务账号。
  • 服务账号名称和电子邮件信息会添加到 Pub/Sub 拉取订阅中。
使用 IAM 进行访问权限控制

BigQuery

  • Pub/Sub 订阅可以将消息写入 BigQuery 数据集。
  • BigQuery 数据集信息会添加到 BigQuery 订阅字段中。
BigQuery 订阅

Cloud Run

  • Cloud Run 服务可以接收消息或发布到 Pub/Sub 主题。
  • Pub/Sub 主题 ID 会添加到 Cloud Run 环境变量中。
  • roles/pubsub.publisher 和 roles/pubsub.subscriber 角色已添加到 Cloud Run 服务账号。
  • Cloud Run 服务会添加到 Pub/Sub 推送和拉取订阅字段中。
教程:将 Pub/Sub 与 Cloud Run 搭配使用

Cloud Storage

  • Pub/Sub 订阅可以将消息写入 Cloud Storage 存储桶。
  • Cloud Storage 存储桶信息会添加到 Pub/Sub 订阅字段中。
Cloud Storage 订阅

必需的配置参数

如果您的模板包含 Pub/Sub 组件,则必须在部署之前配置以下参数。

参数名称

说明和限制

背景信息

项目 ID

您要在其中部署 Pub/Sub 资源的项目。

配置组件

主题

name 主题、订阅、架构或快照命名指南

可选配置参数

以下参数是可选的。如需显示高级参数,请在配置区域中选择显示高级字段。

功能

参数名称

说明和限制条件信息

背景信息

创建主题 默认情况下,系统会创建一个主题。如果您不想创建主题,请清除该复选框。 创建主题
创建订阅 默认情况下,系统会创建订阅。如果您不想创建订阅,请清除该复选框。 订阅概览

主题标签

键 labels 通过标签报告使用量
值 labels 通过标签报告使用量

推送订阅

名称 name 主题、订阅、架构或快照命名指南
确认时限(秒) ackDeadlineSeconds 确认截止时间
推送端点 pushEndpoint Endpoints
X-goog-version 推送消息的 Pub/Sub API 格式。例如,v1beta1。 attributes
OIDC 服务账号邮箱 serviceAccountEmail Authentication
受众群体 audience Authentication
到期政策 expirationPolicy 到期期限
死信主题 deadLetterTopic 死信主题
保留已确认的消息 retainAckedMessages 保留已确认的消息
消息保留时长 messageRetentionDuration 消息保留时长
传送尝试次数上限 maxDeliveryAttempts 死信主题
最大退避时间 maximumBackoff 重试政策
最短退避时间 minimumBackoff 重试政策
过滤 filter 订阅过滤条件
启用消息排序 enableMessageOrdering 消息排序

拉取订阅

名称 name 主题、订阅、架构或快照命名指南
确认时限(秒) ackDeadlineSeconds 确认截止时间
死信主题 deadLetterTopic 死信主题
传送尝试次数上限 maxDeliveryAttempts 死信主题
保留已确认的消息 retainAckedMessages 保留已确认的消息
消息保留时长 messageRetentionDuration 消息保留时长
最大退避时间 maximumBackoff 重试政策
最短退避时间 minimumBackoff 重试政策
过滤 filter 订阅过滤条件
启用消息排序 enableMessageOrdering 消息排序
服务账号
启用“仅传送一次” enableExactlyOnceDelivery “正好一次”传送

BigQuery 订阅

名称 name 主题、订阅、架构或快照命名指南
表格 表格 创建 BigQuery 订阅
使用主题架构 useTopicSchema 使用主题订阅
使用表架构 useTableSchema 使用表架构
写入元数据 writeMetadata 写入元数据
删除未知字段 dropUnknownFields 删除未知字段
确认时限(秒) ackDeadlineSeconds 确认截止时间
保留已确认的消息 retainAckedMessages 保留已确认的消息
消息保留时长 messageRetentionDuration 消息保留时长
启用消息排序 enableMessageOrdering 消息排序
到期政策 expirationPolicy 到期期限
过滤 filter 订阅过滤条件
死信主题 deadLetterTopic 死信主题
最大退避时间 maximumBackoff 重试政策
最短退避时间 minimumBackoff 重试政策

Cloud Storage 订阅

名称 name 主题、订阅、架构或快照命名指南
存储桶 存储桶 存储桶名称
文件名前缀 filenamePrefix 文件名、前缀、后缀和日期时间
文件名后缀 filenameSuffix 文件名、前缀、后缀和日期时间
文件名日期时间格式 filenameDatetimeFormat 文件名、前缀、后缀和日期时间
时长上限 maxDuration 文件批量处理
最大字节数 maxBytes 文件批量处理
消息数量上限 maxMessages 文件批量处理
输出格式 textConfig 或 avroConfig 文件格式
写入元数据 writeMetadata 写入元数据
使用主题架构 useTopicSchema 使用主题架构
确认时限(秒) ackDeadlineSeconds 确认截止时间
保留已确认的消息 保留已确认的消息
消息保留时长 messageRetentionDuration 消息保留时长
启用消息排序 enableMessageOrdering 消息排序
到期政策 expirationPolicy 到期期限
过滤 filter 订阅过滤条件
死信主题 deadLetterTopic 死信主题
最大退避时间 maximumBackoff 重试政策
最短退避时间 minimumBackoff 重试政策

订阅标签

键 labels 通过标签报告使用量
值 labels 通过标签报告使用量
主题消息保留时长 topicMessageRetentionDuration 消息保留时长
主题 KMS 密钥名称 kmsKeyName 使用客户管理的加密密钥 (CMEK)
授予 BigQuery 项目角色 默认情况下,系统会向默认 Pub/Sub 服务账号授予 BigQuery Metadata Viewer 和 BigQuery Data Editor 角色。如果您不想授予这些角色,请取消选中该复选框。 向 Pub/Sub 服务账号分配 BigQuery 角色
授予 Token Creator 角色 默认情况下,系统会向默认 Pub/Sub 服务账号授予 Service Account Token Creator 角色。如果您不想授予此角色,请取消选中该复选框。 为 Pub/Sub 设置身份验证

架构

名称 name 关于架构的重要信息
类型 type 架构类型
定义 定义 架构类型
编码 编码 将架构与主题相关联的准则