設定 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 bucket。
  • Cloud Storage bucket 資訊會新增至 Pub/Sub 訂閱項目欄位。
Cloud Storage 訂閱項目

必要設定參數

如果範本包含 Pub/Sub 元件,您必須先設定下列參數,才能部署。

參數名稱

說明與限制

背景資訊

專案 ID

要部署 Pub/Sub 資源的專案。

設定元件

主題

name 主題、訂閱項目、結構定義或快照的命名規範

選用設定參數

以下為選用參數。如要顯示進階參數,請在「Configuration」(設定) 區域中選取「Show advanced fields」(顯示進階欄位)。

功能

參數名稱

說明和限制資訊

背景資訊

建立主題 系統預設會建立主題。如果不想建立主題,請取消勾選核取方塊。 建立主題
建立訂閱項目 根據預設,系統會建立訂閱項目。如果不想建立訂閱項目,請取消勾選核取方塊。 訂閱總覽

主題標籤

金鑰 labels 使用標籤回報使用情形
值 labels 使用標籤回報使用情形

推送訂閱項目

名稱 name 主題、訂閱項目、結構定義或快照的命名規範
確認期限 (秒) ackDeadlineSeconds 確認期限
推送端點 pushEndpoint 端點
X-goog-version 推送訊息的 Pub/Sub API 格式。例如 v1beta1。 屬性
OIDC 服務帳戶電子郵件地址 serviceAccountEmail 驗證
Audience audience 驗證
到期政策 expirationPolicy 效期
無效信件主題 deadLetterTopic dead-letter 主題
保留已確認的訊息 retainAckedMessages 保留已確認的訊息
訊息保留時間長度 messageRetentionDuration 訊息保留時間
傳送嘗試次數上限 maxDeliveryAttempts dead-letter 主題
輪詢時間上限 maximumBackoff 重試政策
輪詢時間下限 minimumBackoff 重試政策
篩選器 filter 訂閱項目篩選器
啟用訊息排序功能 enableMessageOrdering 訊息排序

提取訂閱項目

名稱 name 主題、訂閱項目、結構定義或快照的命名規範
確認期限 (秒) ackDeadlineSeconds 確認期限
無效信件主題 deadLetterTopic dead-letter 主題
傳送嘗試次數上限 maxDeliveryAttempts dead-letter 主題
保留已確認的訊息 retainAckedMessages 保留已確認的訊息
訊息保留時間長度 messageRetentionDuration 訊息保留時間
輪詢時間上限 maximumBackoff 重試政策
輪詢時間下限 minimumBackoff 重試政策
篩選器 filter 訂閱項目篩選器
啟用訊息排序功能 enableMessageOrdering 訊息排序
服務帳戶
啟用「僅傳送一次」 enableExactlyOnceDelivery 僅傳送一次

BigQuery 訂閱項目

名稱 name 主題、訂閱項目、結構定義或快照的命名規範
資料表 table 建立 BigQuery 訂閱項目
使用主題結構定義 useTopicSchema 使用主題訂閱項目
使用資料表結構定義 useTableSchema 使用資料表結構定義
寫入中繼資料 writeMetadata 寫入中繼資料
捨棄不明欄位 dropUnknownFields 捨棄不明欄位
確認期限 (秒) ackDeadlineSeconds 確認期限
保留已確認的訊息 retainAckedMessages 保留已確認的訊息
訊息保留時間長度 messageRetentionDuration 訊息保留時間
啟用訊息排序功能 enableMessageOrdering 訊息排序
到期政策 expirationPolicy 效期
篩選器 filter 訂閱項目篩選器
無效信件主題 deadLetterTopic dead-letter 主題
輪詢時間上限 maximumBackoff 重試政策
輪詢時間下限 minimumBackoff 重試政策

Cloud Storage 訂閱項目

名稱 name 主題、訂閱項目、結構定義或快照的命名規範
Bucket bucket 值區名稱
檔案名稱前置字串 filenamePrefix 檔案名稱前置字串、後置字串和日期時間
檔案名稱後置字串 filenameSuffix 檔案名稱前置字串、後置字串和日期時間
檔案名稱日期時間格式 filenameDatetimeFormat 檔案名稱前置字串、後置字串和日期時間
時間長度上限 maxDuration 檔案批次處理
Max Bytes maxBytes 檔案批次處理
訊息數量上限 maxMessages 檔案批次處理
輸出格式 textConfig 或 avroConfig 檔案格式
寫入中繼資料 writeMetadata 寫入中繼資料
使用主題結構定義 useTopicSchema 使用主題結構定義
確認期限 (秒) ackDeadlineSeconds 確認期限
保留已確認的訊息 保留已確認的訊息
訊息保留時間長度 messageRetentionDuration 訊息保留時間
啟用訊息排序功能 enableMessageOrdering 訊息排序
到期政策 expirationPolicy 效期
篩選器 filter 訂閱項目篩選器
無效信件主題 deadLetterTopic dead-letter 主題
輪詢時間上限 maximumBackoff 重試政策
輪詢時間下限 minimumBackoff 重試政策

訂閱標籤

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

結構定義

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