本文說明如何建立提取訂閱項目。您可以使用 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 建立訂閱項目」。
選用:在「篩選器」欄位中輸入篩選運算式,篩選訂閱項目中的訊息。詳情請參閱「篩選訂閱項目中的訊息」。
在「重試政策」部分,選取所需選項。詳情請參閱「訂閱重試政策」。
選用:啟用dead-letter 主題,接收無法傳送的訊息。
勾選「無效信件」核取方塊。
在「無效信件主題」清單中,選取或建立無效信件主題。
在「傳送嘗試次數上限」欄位中,輸入傳送嘗試次數上限。
選用:在「傳送屬性」部分,啟用或停用下列傳送選項:
選用步驟:在「Acknowledgement deadline」(確認期限) 部分,設定訂閱者處理及確認訊息的期限。詳情請參閱「使用租約管理功能延長確認時間」。
選用步驟:在「Lifetime options」(保留期限選項) 部分,設定訂閱方案保留訊息的時間長度。
在「訊息保留時間」部分,指定未確認訊息的保留時間。
如要保留已確認和未確認訊息,請選取「保留已確認訊息」核取方塊。
詳情請參閱「設定訂閱項目的訊息保留時間」。
選用:在「到期時間」部分,選取下列任一選項:
如要設定訂閱到期日,請勾選「持續閒置達到指定天數即過期」核取方塊。輸入訂閱項目可保持閒置的天數,之後 Pub/Sub 會刪除訂閱項目。
如要停用訂閱到期功能,請選取「永不過期」核取方塊。
詳情請參閱「訂閱到期」。
點選「建立」。
你也可以在「主題」部分建立訂閱項目。 這個捷徑可將主題與訂閱項目建立關聯。
前往 Google Cloud 控制台的「Topics」(主題) 頁面。
按一下要建立訂閱項目的主題旁邊的 more_vert。
在內容選單中,選取「建立訂閱項目」。
在「將訂閱項目新增至主題」頁面中,完成上一個程序說明的步驟。系統會自動填入主題 ID。
gcloud
-
在 Google Cloud 控制台中啟用 Cloud Shell。
控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。 Google Cloud 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 用戶端程式庫 v3。如果您仍在使用 v2 程式庫,請參閱 v3 遷移指南。如要查看 Ruby v2 程式碼範例清單,請參閱 已淘汰的程式碼範例。
在試用這個範例之前,請先按照快速入門:使用用戶端程式庫的操作說明設定 Ruby 環境。詳情請參閱 Pub/Sub Ruby API 參考文件。
監控提取訂閱項目
Cloud Monitoring 提供多項指標,可監控訂閱項目。
如要查看所有可用的 Pub/Sub 相關指標及其說明,請參閱 Pub/Sub 的監控說明文件。
您也可以在 Pub/Sub 內監控訂閱項目。
後續步驟
- 從提取訂閱項目接收訊息。
- 使用
gcloud指令建立或修改訂閱項目。 - 使用 REST API 建立或修改訂閱項目。