本文件說明如何建立提取訂閱。您可以使用 Google Cloud 控制台、Google Cloud CLI、用戶端程式庫或 Pub/Sub API 建立提取訂閱。
事前準備
必要角色和權限
如要建立訂閱項目,您必須在專案層級設定存取權控管。如果訂閱項目和主題位於不同專案中,您也需要資源層級權限,請參閱本節後續的說明。
如要取得建立拉取訂閱所需的權限,請要求管理員為您授予專案的 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
-
取得訂閱項目的身分與存取權管理政策:
pubsub.subscriptions.getIamPolicy
-
設定訂閱項目的 IAM 政策:
pubsub.subscriptions.setIamPolicy
如果您需要在一個專案中建立與另一個專案主題相關的拉取訂閱項目,請要求主題管理員也將 Pub/Sub 編輯者 (roles/pubsub.editor)
IAM 角色授予您。
提取訂閱項目屬性
設定拉取訂閱時,您可以指定下列屬性。
常見屬性
瞭解您可以在所有訂閱項目中設定的常見訂閱屬性。
僅傳送一次
僅傳送一次:如果已設定,Pub/Sub 就會履行「僅傳送一次」傳送保證。如果未指定,訂閱項目會支援每則訊息的至少一次傳送。
建立提取訂閱項目
以下範例示範如何使用提供的預設設定,建立使用提取提交的訂閱項目。
控制台
如要建立提取訂閱,請完成下列步驟。
在 Google Cloud 控制台中,前往「訂閱項目」頁面。
- 按一下「Create Subscription」 (建立訂閱項目)。
在「Subscription ID」欄位中輸入名稱。
如要進一步瞭解如何命名訂閱項目,請參閱「命名主題或訂閱項目的規範」。
- 從下拉式選單中選擇或建立主題。訂閱項目會接收主題的訊息。
- 將「Delivery type」保留為「提取」。
- 保留所有其他預設值。
- 按一下 [建立]。
您也可以在「主題」部分建立訂閱項目。 這個快捷動作可用於將主題與訂閱項目建立關聯。
前往 Google Cloud 控制台的「Topics」頁面。
- 按一下要建立訂閱的主題旁邊的more_vert。
- 在內容選單中,選取「建立訂閱」。
輸入「Subscription ID」(訂閱 ID)。
如要進一步瞭解如何命名訂閱項目,請參閱「命名主題或訂閱項目的規範」。
- 將「Delivery type」保留為「提取」。
- 保留所有其他預設值。
- 按一下 [建立]。
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google 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 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" }
其中:
回應:
{ "name": "projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID", "topic": "projects/PROJECT_ID/topics/TOPIC_ID", "pushConfig": {}, "ackDeadlineSeconds": 10, "messageRetentionDuration": "604800s", "expirationPolicy": { "ttl": "2678400s" } }
C++
在嘗試這個範例之前,請先按照 Pub/Sub 快速入門:使用用戶端程式庫中的操作說明設定 C++。詳情請參閱 Pub/Sub C++ API 參考說明文件。
如要向 Pub/Sub 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
C#
在嘗試這個範例之前,請先按照 Pub/Sub 快速入門:使用用戶端程式庫中的操作說明設定 C#。詳情請參閱 Pub/Sub C# API 參考說明文件。
如要向 Pub/Sub 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Go
在嘗試這個範例之前,請先按照 Pub/Sub 快速入門:使用用戶端程式庫中的操作說明設定 Go。詳情請參閱 Pub/Sub Go API 參考說明文件。
如要向 Pub/Sub 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Java
在嘗試這個範例之前,請先按照 Pub/Sub 快速入門:使用用戶端程式庫中的操作說明設定 Java。詳情請參閱 Pub/Sub Java API 參考說明文件。
如要向 Pub/Sub 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Node.js
Node.js
PHP
在嘗試這個範例之前,請先按照 Pub/Sub 快速入門:使用用戶端程式庫中的操作說明設定 PHP。詳情請參閱 Pub/Sub PHP API 參考說明文件。
如要向 Pub/Sub 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Python
在嘗試這個範例之前,請先按照 Pub/Sub 快速入門:使用用戶端程式庫中的操作說明設定 Python。詳情請參閱 Pub/Sub Python API 參考說明文件。
如要向 Pub/Sub 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
Ruby
在嘗試這個範例之前,請先按照 Pub/Sub 快速入門:使用用戶端程式庫中的操作說明設定 Ruby。詳情請參閱 Pub/Sub Ruby API 參考說明文件。
如要向 Pub/Sub 進行驗證,請設定應用程式預設憑證。詳情請參閱「設定用戶端程式庫的驗證機制」。
監控提取訂閱項目
Cloud Monitoring 提供多項指標,可用於監控訂閱項目。
如需 Pub/Sub 相關指標的完整清單和說明,請參閱 Pub/Sub 監控說明文件。
您也可以在 Pub/Sub 中監控訂閱項目。
後續步驟
- 使用
gcloud
指令建立或修改訂閱項目。 - 使用 REST API 建立或修改訂閱項目。