使用用戶端程式庫在 Pub/Sub 中發布及接收訊息
- 資料生產者將訊息發布至 Pub/Sub 主題。
- 訂閱端用戶端會建立對該主題的訂閱,並提取來自訂閱項目的訊息。
您可以使用下列任一方法設定 Pub/Sub 環境: Google Cloud 控制台、Cloud Shell、用戶端程式庫或 REST API。本頁面說明如何開始使用用戶端程式庫,以 Pub/Sub 發布訊息。
Pub/Sub 提供高階和低階自動產生的用戶端程式庫。根據預設,如本快速入門導覽課程所示,我們建議使用高階用戶端程式庫。
如要直接在 Google Cloud 控制台中,按照這項工作的逐步指南操作,請按一下「Guide me」(逐步引導):
事前準備
- 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
選取或建立專案所需的角色
- 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
-
建立專案:如要建立專案,您需要具備專案建立者角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
建立 Google Cloud 專案:
gcloud projects create PROJECT_ID
將
PROJECT_ID替換為您要建立的 Google Cloud 專案名稱。 -
選取您建立的 Google Cloud 專案:
gcloud config set project PROJECT_ID
將
PROJECT_ID替換為 Google Cloud 專案名稱。
啟用 Pub/Sub API:
啟用 API 時所需的角色
如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。gcloud services enable pubsub.googleapis.com
-
為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
-
將角色授予使用者帳戶。針對下列每個 IAM 角色,執行一次下列指令:
roles/pubsub.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
更改下列內容:
PROJECT_ID:專案 ID。USER_IDENTIFIER:使用者帳戶的 ID。 例如:myemail@example.com。ROLE:授予使用者帳戶的 IAM 角色。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
執行下列指令,初始化 gcloud CLI:
gcloud init -
選取或建立專案所需的角色
- 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
-
建立專案:如要建立專案,您需要具備專案建立者角色 (
roles/resourcemanager.projectCreator),其中包含resourcemanager.projects.create權限。瞭解如何授予角色。
-
建立 Google Cloud 專案:
gcloud projects create PROJECT_ID
將
PROJECT_ID替換為您要建立的 Google Cloud 專案名稱。 -
選取您建立的 Google Cloud 專案:
gcloud config set project PROJECT_ID
將
PROJECT_ID替換為 Google Cloud 專案名稱。
啟用 Pub/Sub API:
啟用 API 時所需的角色
如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (
roles/serviceusage.serviceUsageAdmin),其中包含serviceusage.services.enable權限。瞭解如何授予角色。gcloud services enable pubsub.googleapis.com
-
為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
-
將角色授予使用者帳戶。針對下列每個 IAM 角色,執行一次下列指令:
roles/pubsub.admingcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
更改下列內容:
PROJECT_ID:專案 ID。USER_IDENTIFIER:使用者帳戶的 ID。 例如:myemail@example.com。ROLE:授予使用者帳戶的 IAM 角色。
安裝用戶端程式庫
下列範例說明如何安裝用戶端程式庫:
Python
如要進一步瞭解如何設定 Python 開發環境,請參閱「Python 開發環境設定指南」。
# ensure that you are using virtualenv
# as described in the python dev setup guide
pip install --upgrade google-cloud-pubsub
C++
如要進一步瞭解如何安裝 C++ 程式庫,請參閱 GitHub README
C#
Install-Package Google.Cloud.PubSub.V1 -Pre
Go
go get cloud.google.com/go/pubsub
Java
如果您使用 Maven,請將下列指令新增到 pom.xml 檔案中。如要進一步瞭解 BOM,請參閱 Google Cloud Platform 程式庫 BOM。
如果您使用 Gradle,請將下列指令新增到依附元件中:
如果您使用 sbt,請在依附元件中加入以下指令:
如果您使用 Visual Studio Code 或 IntelliJ,可以利用下列 IDE 外掛程式,將用戶端程式庫新增到專案中:
這些外掛程式會提供其他功能,例如服務帳戶的金鑰管理功能。詳情請參閱各外掛程式的說明文件。
Node.js
npm install @google-cloud/pubsub
PHP
composer require google/cloud-pubsub
Ruby
gem install google-cloud-pubsub
建立主題與訂閱項目
建立主題後,您就可以訂閱或發布至該主題。
使用下列 gcloud pubsub topics create 指令建立名為 my-topic 的主題。請勿變更主題名稱,因為教學課程的其餘部分會參考這個名稱。
gcloud pubsub topics create my-topic
使用 gcloud pubsub subscriptions
create 指令建立訂閱。只有在訂閱後發佈至主題的訊息才能在訂閱者應用程式中找到。
gcloud pubsub subscriptions create my-sub --topic my-topic
發布訊息
執行下列範例前,請務必取消註解並填入程式碼中標示的所有必要值。這是將範例連結至專案和先前建立的 Pub/Sub 資源的必要步驟。
請使用 my-topic 做為主題 ID。
Python
C++
C#
Go
Java
Node.js
Node.js
PHP
Ruby
接收郵件
設定訂閱者,以便提取您剛發布的訊息。每個訂閱者都必須確認可設定時間範圍內的每個訊息。未確認的訊息會重新傳送。請注意,Pub/Sub 偶爾會重複傳送訊息,確保所有訊息至少會傳送給訂閱者一次。
執行下列範例前,請務必取消註解並填入程式碼中標示的所有必要值。這是將範例連結至專案和先前建立的 Pub/Sub 資源的必要步驟
使用 my-sub 做為訂閱 ID。
如需更多擷取訊息的範例,請參閱用戶端程式庫程式碼範例。
Python
C++
C#
Go
Java
Node.js
PHP
Ruby
還順利嗎?
清理 (選用)
- 如要避免系統向您的 Google Cloud 帳戶收取本指南中所用資源的相關費用,請使用指令列刪除主題和訂閱項目。
gcloud pubsub subscriptions delete my-sub gcloud pubsub topics delete my-topic
-
選用:撤銷您建立的驗證憑證,並刪除本機憑證檔案。
gcloud auth application-default revoke
-
選用:從 gcloud CLI 撤銷憑證。
gcloud auth revoke
後續步驟
進一步瞭解本頁討論的 Pub/Sub 概念。
閱讀 Pub/Sub 服務的基本概念。
瞭解如何建構一對多 Pub/Sub 系統,建立發布者應用程式,並將訊息發布至兩個不同的訂閱者應用程式。
請嘗試其他使用 gcloud CLI 或控制台的 Pub/Sub 快速入門導覽課程。
進一步瞭解 Pub/Sub API。
瞭解如何使用 Kotlin 執行 Pub/Sub。