建立訂閱項目時,您會將訂閱項目附加至主題,訂閱者即可從訂閱項目接收訊息。如要停止傳送訊息給訂閱者,可以將訂閱項目從主題卸離。
如要取消訂閱,您必須擁有主題的 pubsub.topics.detachSubscription
權限。您可以在沒有訂閱項目權限的情況下分離訂閱項目,這有助於管理與訂閱項目位於不同專案的主題。詳情請參閱 Pub/Sub 存取權控管。
事前準備
必要角色和權限
如要取得分離及管理訂閱項目所需的權限,請要求管理員為您授予主題或專案的 Pub/Sub 編輯者 (roles/pubsub.editor
) 身分與存取權管理角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
這個預先定義角色具備分離及管理訂閱項目所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要取消連結及管理訂閱項目,必須具備下列權限:
-
從訂閱項目提取:
pubsub.subscriptions.consume
-
建立訂閱項目:
pubsub.subscriptions.create
-
刪除訂閱項目:
pubsub.subscriptions.delete
-
取得訂閱方案:
pubsub.subscriptions.get
-
列出訂閱項目:
pubsub.subscriptions.list
-
更新訂閱項目:
pubsub.subscriptions.update
-
將訂閱項目附加至主題:
pubsub.topics.attachSubscription
-
取得訂閱項目的 IAM 政策:
pubsub.subscriptions.getIamPolicy
-
為訂閱項目設定 IAM 政策:
pubsub.subscriptions.setIamPolicy
您可以在專案層級和個別資源層級設定存取權控管。您可以在一個專案中建立訂閱項目,並將其附加至位於其他專案的主題。請確認您具備每個專案的必要權限。
將訂閱項目從主題卸離
您可以使用 Trusted Cloud 控制台、Google Cloud CLI、用戶端程式庫或 Pub/Sub API,將訂閱項目從主題中分離。
控制台
如要取消訂閱,請按照下列步驟操作:
前往 Trusted Cloud 控制台的「主題」頁面。
選取要取消訂閱的主題。
在「訂閱」分頁中,選取要取消連結的訂閱項目。
在「Subscription details」(訂閱詳細資料) 頁面中,按一下「Detach」(卸離)。
在隨即顯示的對話方塊中,再次按一下「Detach」(取消連結)。
gcloud
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
如要取消訂閱,請使用
gcloud pubsub topics detach-subscription
指令:gcloud pubsub topics detach-subscription SUBSCRIPTION_ID
如果要求成功,指令列會顯示確認訊息:
Detached subscription [SUBSCRIPTION_ID].
- PROJECT_ID 是您的專案 ID。
- SUBSCRIPTION_ID 是您的訂閱 ID。
REST
如要取消連結訂閱項目,請使用 projects.subscriptions.detach
方法。
要求:
要求必須使用 Authorization
標頭中的存取權杖進行驗證。如要取得目前應用程式預設憑證的存取權杖,請使用
gcloud auth application-default print-access-token
指令。
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID:detach Authorization: Bearer ACCESS_TOKEN
其中:
回應:
如果要求成功,回應會是空白的 JSON 物件。
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
以下範例使用 Ruby Pub/Sub 用戶端程式庫 v3。如果您仍在使用第 2 版程式庫,請參閱 第 3 版遷移指南。如要查看 Ruby 第 2 版程式碼範例清單,請參閱 已淘汰的程式碼範例。
在試用這個範例之前,請先按照快速入門:使用用戶端程式庫的操作說明設定 Ruby 環境。詳情請參閱 Pub/Sub Ruby API 參考說明文件。
Pub/Sub 服務可能需要幾分鐘才能完成將訂閱項目從主題中分離。
Pub/Sub 服務將訂閱項目從主題中分離後,就會刪除為該訂閱項目保留的所有訊息。您無法從訂閱項目擷取這些訊息,也無法將訂閱項目重新附加至主題。如要釋出 Trusted Cloud 專案配額,請刪除訂閱項目。
如果訂閱項目和主題位於不同 Trusted Cloud 專案,Pub/Sub 服務會在兩個專案的稽核記錄中新增項目。