概述
Google Cloud Pub/Sub 是一個訊息服務,提供在不同的應用或服務之間,傳遞事件資料,資料的產生者發佈訊息到 Cloud Pub/Sub topic
, 訂閱者可以經由訂閱拉回訊息,或是設定好,當某事件被觸發時,就觸發訂閱。 每個訂閱者必須在可設定的一段時間內確認收到訊息
你將會做什麼?
- 設定一個
topic
來存放資料 - 訂閱一個
topic
來存取資料 - 發佈,然後經由訂閱者來消耗訊息
前言
本篇主要是利用 Google 的 Qwiklab 平台學習的同時,做的一份學習筆記
為避免翻譯誤解,專業術語在本篇將不會被翻譯,保留原文
設定及要求
在你按下 Start Lab 按鈕之前
詳讀所有的教學。Labs 是有時間限制的,而且你不可以停止時間倒數。倒數計時器在你按下 Start Lab 按鈕後開始倒數,上面顯示的時間為你還能使用 Cloud 資源的時間。
Qwiklabs 的手把手環境,讓你可以在真實環境中來操作進行 Qwiklabs 上提供的課程,而不是在一個模擬或是展示的環境。我們透過提供你一個全新的、暫時的帳號密碼,在計時器歸零之前,你可以用來登入並存取 Google Cloud Platform。
你需要什麼?
要完成這個 lab ,你需要:
- 一個一般的網路瀏覽器(推薦 Chrome)
- 完成這個 lab 的時間
備註: 如果你已經有你自己的個人 GCP 帳號或專案,請不要使用在這一個 lab
現在你已經開始你的 lab
, 你將會登入 Google Cloud Shell
主控台,然後開啟命令列工具
如何開始你的 lab ,然後登入 Console?
- 按下 Start Lab 按鈕。如果你需要付費,會有一個彈出視窗來讓你選擇付費的方式。在左方你會看到一個面板,上面有暫時的帳號密碼,你必須使用這些帳號密碼在此次 lab
- 複製
username
, 然後點擊Open Google Console
。 Lab 會開啟另外一個視窗,顯示選擇帳號
的頁面
tip: 開啟一個全新的視窗,然後跟原本的頁面並排
- 在
選擇帳號
頁面, 點擊Use Another Account
- 登入頁面開啟,貼上之前複製的
username
以及password
,然後貼上
重要:必須使用之前於 Connection Details 面板
取得的帳號密碼,不要使用你自己的 Qwiklabs 帳號密碼。 如果你有自己的 GCP 帳號,請不要用在這裡(避免產生費用)
- 點擊並通過接下來的頁面:
- 接受
terms
以及conditions
- 不要增加
recovery optoins
或two factor authentication
(因為這只是一個臨時帳號) - 不要註冊免費體驗
- 接受
稍待一些時候, GCP 控制台將會在這個視窗開啟。
注意:按下左上方位於Google Cloud Platform
隔壁的 Navigation menu
,你可以瀏覽選單,裡面有一系列的 GCP 產品以及服務
啟動 Google Cloud Shell
Google Cloud Shell
是載有開發工具的虛擬機器。它提供了5GB的 home 資料夾,並且運行在 Google Cloud
上。 Google Cloud Shell
讓你可以利用 command-line 存取 GCP
資源
- 在
GCP 控制台
,右上的工具列,點擊Open Cloud Shell
按鈕
- 在打開的對話框裡,按下
START CLOUD SHELL
:
你可以立即按下 START CLOUD SHELL
當對話視窗打開。
連結並提供環境會需要一點時間。當你連結成功,這代表你已成功獲得授權,且此專案已被設為你的專案ID,例如:
gcloud 是 Google Cloud Platform
的 command-line 工具,他已事先被安裝在 Cloud Shell
並且支援自動補齊
使用這個 command ,你可以列出有效帳戶名稱:
gcloud auth list |
輸出:
Credentialed accounts: |
範例輸出:
Credentialed accounts: |
你可以使用以下 command 來列出專案 ID
gcloud config list project |
輸出:
[core] |
範例輸出:
[core] |
gcloud
的完整文件可以參閱 Google Cloud gcloud Overview
設定 Pub/Sub
你可以使用 Google Cloud Shell
主控台來操作 Google Cloud Pub/Sub
要使用 Pub/Sub
, 你建立一個 topic
來存放資料,以及一個訂閱來存取被發佈到 topic
的資料
- 點擊 Navigation menu > Pub/Sub > Topics
- 點擊Create a topic
topic
必須是一個獨一無二的名字,在這個lab
中,將你的topic
取名為MyTopic
. 在Create a topic
視窗中:
- 將你的
topic
取名為MyTopic
- 將 Encryption 留為默認值
- 點擊 CREATE TOPIC
你已經建立了 topic
測試任務是否完成
點擊Check my progress 來和對目前任務進度。如果你已經成功建立 Cloud Pub/Sub topic
, 你會得到評價的分數
增加一個訂閱
現在你將建立一個訂閱來存取 topic
- 在左邊的控制列點擊 Topics 回到 Topics 對話框, 在我們剛剛建立的
topic
,在三個點的圖案處按一下,然後點擊 Create subscription
- 在 Add subscription to topic 對話框:
- 輸入
subscription
的名字,例如 MySub - 將 Delivery type 設為 Pull
- 將其他選項都留為預設值
- 點擊 Create
- 輸入
測試任務是否完成
點擊Check my progress 來和對目前任務進度。如果你已經成功建立 Cloud Pub/Sub topic
, 你會得到評價的分數
測試你的理解
底下有一些問題用來鞏固你對這個 lab
概念的了解,盡你所能的去回答吧
一個發佈者的的應用,建立並且傳送訊息到 ___
. 訂閱者的應用建立一個 ___
到 topic
來取得訊息
- topic, subscription
- topic, topic
- subscription, subscription
- subscription, topic
Cloud Pub/Sub
是一個被設計為高度可靠以及可規模化的異步訊息服務
發佈訊息到 topic
- 在 Topics details 對話框的上方,點擊 PUBLISH MESSAGE。 你可能需要調寬瀏覽器的視窗來檢視 PUBLISH MESSAGE 選項
- 在 Message 欄位中輸入
Hello World
, 然後點擊 Publish
檢視訊息
要檢視訊息,你將需要使用 subscription (MySub)
來從 topic (MyTopic)
取得訊息 (Hello World)
在命令行輸入以下指令
gcloud pubsub subscriptions pull --auto-ack MySub |
訊息將會出現在輸出的 DATA
欄位
你建立了 Pub/Sub topic
,並且發佈到這個 topic
, 建立了 subscription
, 然後使用 subscription
來取得在 topic
的資料
恭喜完成本教程!
留言