本文說明如何建立提取訂閱項目。您可以使用 Google Cloud 控制台、Google Cloud CLI、用戶端程式庫或 Pub/Sub API 建立提取訂閱項目。
事前準備
所需角色和權限
如要取得建立提取訂閱項目所需的權限,請要求管理員授予您專案的 Pub/Sub 編輯者 (roles/pubsub.editor) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備建立提取訂閱項目所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要建立提取訂閱項目,必須具備下列權限:
-
專案有
pubsub.subscriptions.create -
pubsub.topics.attachSubscription這個主題
跨專案訂閱
如果您在一個專案中為另一個專案的主題建立訂閱項目,您必須對建立訂閱項目的專案具備 pubsub.subscriptions.create 權限,並對主題具備 pubsub.topics.attachSubscription 權限。
建立提取訂閱項目
控制台
如要建立提取訂閱項目,請按照下列步驟操作:
前往 Google Cloud 控制台的「Subscriptions」(訂閱項目) 頁面。
按一下「Create Subscription」 (建立訂閱項目)。
在「Subscription ID」(訂閱 ID) 欄位中輸入名稱。
如要瞭解如何命名訂閱項目,請參閱「主題或訂閱項目命名規範」。
在「Pub/Sub topic」(Pub/Sub 主題) 清單中,選取訂閱項目要讀取的主題。
在「傳送類型」部分,選取「提取」。
選用:在「轉換」部分,新增一或多個單一訊息轉換 (SMT)。詳情請參閱「使用 SMT 建立訂閱項目」。
選用:在「Filter」(篩選器) 欄位中輸入篩選運算式,篩選訂閱項目中的訊息。詳情請參閱「篩選訂閱內容的訊息」。
在「重試政策」部分,選取所需選項。詳情請參閱「訂閱重試政策」。
選用:啟用dead-letter 主題,接收無法傳送的訊息。
勾選「Dead lettering」核取方塊。
在「Dead letter topic」(無法傳送訊息的主題) 清單中,選取或建立無法傳送訊息的主題。
在「傳送嘗試次數上限」欄位中,輸入傳送嘗試次數上限。
選用步驟:在「放送屬性」部分,啟用或停用下列放送選項:
選用步驟:在「Acknowledgement deadline」(確認期限) 部分,設定訂閱者處理及確認訊息的期限。詳情請參閱「使用租約管理功能延長確認時間」。
選用步驟:在「Lifetime options」(保留期限選項) 部分,設定訂閱方案保留訊息的時間長度。
在「訊息保留時間」部分,指定未確認訊息的保留時間。
如要保留已確認和未確認的訊息,請勾選「保留已確認訊息」核取方塊。
詳情請參閱「設定訂閱項目的訊息保留時間」。
選用:在「有效期限」部分,選取下列任一選項:
如要設定訂閱項目到期時間,請勾選「持續閒置達到指定天數即過期」核取方塊。輸入訂閱項目可保持閒置的天數,超過這個天數後,Pub/Sub 就會刪除訂閱項目。
如要停用訂閱到期功能,請選取「永不過期」核取方塊。
詳情請參閱「訂閱到期」。
點選「建立」。
你也可以從「主題」部分建立訂閱項目。 這個快速鍵可將主題與訂閱項目建立關聯。
前往 Google Cloud 控制台的「Topics」(主題) 頁面。
按一下要建立訂閱項目的主題旁邊的 more_vert。
在內容選單中選取「建立訂閱項目」。
在「將訂閱項目新增至主題」頁面中,完成上一個程序所述的步驟。系統會自動填入主題 ID。
gcloud
-
在 Google Cloud 控制台中啟用 Cloud Shell。
Google Cloud 控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已設定適用於您目前專案的值。工作階段可能要幾秒鐘的時間才能初始化。
-
如要建立提取訂閱項目,請執行
gcloud pubsub subscriptions create指令。gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_ID
更改下列內容:
SUBSCRIPTION_ID:新提取訂閱項目的名稱或 ID。TOPIC_ID:主題的名稱或 ID。
REST
如要建立提取訂閱項目,請使用
projects.subscriptions.create 方法:
要求:
要求必須使用 Authorization 標頭中的存取權杖進行驗證。如要取得目前應用程式預設憑證的存取權杖,請執行下列操作:
gcloud auth application-default print-access-token。
PUT https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID Authorization: Bearer ACCESS_TOKEN
要求主體:
{ "topic": "projects/PROJECT_ID/topics/TOPIC_ID" }
其中:
- PROJECT_ID 是您的專案 ID。
- SUBSCRIPTION_ID 是您的訂閱 ID。
- TOPIC_ID 是主題 ID。
回應:
{
"name": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID",
"topic": "projects/PROJECT_ID/topics/TOPIC_ID",
"pushConfig": {},
"ackDeadlineSeconds": 10,
"messageRetentionDuration": "604800s",
"expirationPolicy": {
"ttl": "2678400s"
}
}C++
在試用這個範例之前,請先按照「快速入門導覽課程:使用用戶端程式庫」中的 C++ 設定說明操作。詳情請參閱 Pub/Sub C++ API 參考文件。
C#
在試用這個範例之前,請先按照「快速入門導覽課程:使用用戶端程式庫」中的 C# 設定操作說明操作。詳情請參閱 Pub/Sub C# API 參考文件。
Go
下列範例使用 Go Pub/Sub 用戶端程式庫的主要版本 (v2)。如果您仍在使用第 1 版程式庫,請參閱第 2 版遷移指南。如要查看第 1 版程式碼範例清單,請參閱 已淘汰的程式碼範例。
在試用這個範例之前,請先按照「快速入門導覽課程:使用用戶端程式庫」中的 Go 設定說明操作。詳情請參閱 Pub/Sub Go API 參考文件。
Java
在試用這個範例之前,請先按照「快速入門導覽課程:使用用戶端程式庫」中的 Java 設定說明操作。詳情請參閱 Pub/Sub Java API 參考文件。
Node.js
在試用這個範例之前,請先按照「快速入門導覽課程:使用用戶端程式庫」中的 Node.js 設定說明操作。詳情請參閱 Pub/Sub Node.js API 參考文件。
Node.ts
在試用這個範例之前,請先按照「快速入門導覽課程:使用用戶端程式庫」中的 Node.js 設定說明操作。詳情請參閱 Pub/Sub Node.js API 參考文件。
PHP
在試用這個範例之前,請先按照「快速入門導覽課程:使用用戶端程式庫」中的 PHP 設定說明操作。詳情請參閱 Pub/Sub PHP API 參考文件。
Python
在試用這個範例之前,請先按照「快速入門導覽課程:使用用戶端程式庫」中的 Python 設定說明操作。詳情請參閱 Pub/Sub Python API 參考文件。
小茹
下列範例使用 Ruby Pub/Sub 用戶端程式庫第 3 版。如果您仍在使用第 2 版程式庫,請參閱 第 3 版遷移指南。如要查看 Ruby 第 2 版程式碼範例清單,請參閱 已淘汰的程式碼範例。
在試用這個範例之前,請先按照「快速入門導覽課程:使用用戶端程式庫」中的 Ruby 設定操作說明操作。詳情請參閱 Pub/Sub Ruby API 參考文件。
Rust
在試用這個範例之前,請先按照「快速入門導覽課程:使用用戶端程式庫」中的 Rust 設定說明操作。詳情請參閱 Pub/Sub Rust API 參考文件。
監控提取訂閱項目
Cloud Monitoring 提供多項指標,可監控訂閱項目。
如要查看所有可用的 Pub/Sub 相關指標及其說明,請參閱 Pub/Sub 的監控說明文件。
您也可以在 Pub/Sub 內監控訂閱項目。
後續步驟
- 從提取訂閱項目接收訊息。
- 使用
gcloud指令建立或修改訂閱項目。 - 使用 REST API 建立或修改訂閱項目。