在 App Design Center 中設定 Pub/Sub

Pub/Sub 是可擴充的非同步訊息服務,會分離產生訊息的服務與處理訊息的服務。詳情請參閱「什麼是 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.publisherroles/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 端點
X-goog-version 推送訊息的 Pub/Sub API 格式。例如 v1beta1。 屬性
OIDC 服務帳戶電子郵件地址 serviceAccountEmail 驗證
Audience 目標對象 驗證
到期政策 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 主題、訂閱項目、結構定義或快照的命名規範
Bucket bucket 值區名稱
檔案名稱前置字串 filenamePrefix 檔案名稱前置字串、後置字串和日期時間
檔案名稱後置字串 filenameSuffix 檔案名稱前置字串、後置字串和日期時間
檔案名稱日期時間格式 filenameDatetimeFormat 檔案名稱前置字串、後置字串和日期時間
時間長度上限 maxDuration 批次處理檔案
位元組上限 maxBytes 批次處理檔案
訊息上限 maxMessages 批次處理檔案
輸出格式 textConfigavroConfig 檔案格式
寫入中繼資料 writeMetadata 寫入中繼資料
使用主題結構定義 useTopicSchema 使用主題結構定義
確認期限 (秒) ackDeadlineSeconds 確認期限
保留已確認的訊息 保留已確認的訊息
訊息保留時間 messageRetentionDuration 訊息保留時間
啟用訊息排序 enableMessageOrdering 訊息排序
到期政策 expirationPolicy 效期
篩選器 filter 訂閱項目篩選器
無效信件主題 deadLetterTopic 無效信件主題
輪詢時間上限 maximumBackoff 重試政策
輪詢時間下限 minimumBackoff 重試政策

訂閱標籤

金鑰 labels 使用標籤回報使用情形
labels 使用標籤回報使用情形
主題訊息保留時間 topicMessageRetentionDuration 訊息保留時間
主題 KMS 金鑰名稱 kmsKeyName 使用客戶自行管理的加密金鑰 (CMEK)
授予 BigQuery 專案角色 根據預設,系統會將 BigQuery 中繼資料檢視者BigQuery 資料編輯者角色授予預設的 Pub/Sub 服務帳戶。如不想授予這些角色,請取消勾選核取方塊。 將 BigQuery 角色指派給 Pub/Sub 服務帳戶
授權權杖建立者 根據預設,系統會將服務帳戶憑證建立者角色授予預設的 Pub/Sub 服務帳戶。如不想授予這個角色,請取消勾選核取方塊。 設定 Pub/Sub 的驗證

結構定義

名稱 name 關於結構化資料的重要資訊
類型 type 結構定義類型
定義 定義 結構定義類型
編碼 編碼 將結構定義與主題建立關聯的指南