這份 Pub/Sub: Qwik Start - Console 教學主要是透過 Google Cloud Console (網頁介面) 來操作。若要將整個過程轉換為使用 Cloud Shell 的 CLI (gcloud 指令) 來進行,請參考以下詳細的步驟與說明:
在開始之前,請確保您已經點擊了畫面右上角的 Activate Cloud Shell (啟動 Cloud Shell) 按鈕,並等待終端機載入完成。
首先,我們需要建立一個用來接收和保留資料的「主題」。對應網頁中的 Task 1。
執行指令:
gcloud pubsub topics create MyTopic
詳細說明:
gcloud pubsub topics create:這是 Google Cloud SDK 中用來建立新 Pub/Sub 主題的標準指令。MyTopic:這是您賦予該主題的名稱 (ID)。執行成功後,系統會回傳已建立的主題路徑 (例如:Created topic [projects/YOUR_PROJECT_ID/topics/MyTopic])。有了主題之後,我們需要建立一個「訂閱」來存取發布到該主題的資料。對應網頁中的 Task 2。
執行指令:
gcloud pubsub subscriptions create MySub --topic=MyTopic
詳細說明:
gcloud pubsub subscriptions create MySub:建立一個名為 MySub 的新訂閱。--topic=MyTopic:這個參數非常重要,它用來指定這個訂閱要綁定到哪一個主題。預設情況下,透過這個指令建立的訂閱類型就是 Pull (提取),與實驗室的要求一致。接下來,我們要扮演生產者 (Producer) 的角色,發送一則訊息到剛剛建立的主題中。對應網頁中的 Task 4。
執行指令:
gcloud pubsub topics publish MyTopic --message="Hello World"
詳細說明:
gcloud pubsub topics publish MyTopic:指定要發布訊息的目標主題為 MyTopic。--message="Hello World":指定訊息的內容為 "Hello World"。執行後,系統會回傳一組 Message ID,代表訊息已經成功發布並儲存在 Pub/Sub 中等待接收。最後,我們扮演消費者 (Consumer) 的角色,透過訂閱來提取剛剛發布的訊息。對應網頁中的 Task 5。
執行指令:
gcloud pubsub subscriptions pull --auto-ack MySub
詳細說明:
gcloud pubsub subscriptions pull MySub:要求從 MySub 這個訂閱中拉取 (Pull) 待處理的訊息。--auto-ack:自動確認 (Acknowledge) 訊息。在 Pub/Sub 的機制中,訊息被拉取後必須被「確認」,否則系統會認為訊息未成功送達,並在不久後重新派發。加上這個參數後,指令會在終端機印出 "Hello World" 的同時,自動向系統回報該訊息已處理完畢。Welcome to Cloud Shell! Type "help" to get started.
Your Cloud Platform project in this session is set to qwiklabs-gcp-04-bf208d83416a.
Use gcloud config set project [PROJECT_ID] to change to a different project.
student_02_a5c6f95e3694@cloudshell:~ (qwiklabs-gcp-04-bf208d83416a)$ gcloud pubsub topics create MyTopic
Created topic [projects/qwiklabs-gcp-04-bf208d83416a/topics/MyTopic].
student_02_a5c6f95e3694@cloudshell:~ (qwiklabs-gcp-04-bf208d83416a)$ gcloud pubsub subscriptions create MySub --topic=MyTopic
Created subscription [projects/qwiklabs-gcp-04-bf208d83416a/subscriptions/MySub].
student_02_a5c6f95e3694@cloudshell:~ (qwiklabs-gcp-04-bf208d83416a)$ gcloud pubsub topics publish MyTopic --message="Hello World"
messageIds:
輸出結果解析:
Created topic [...] 證實 MyTopic 已成功在您的專案 (qwiklabs-gcp-04-bf208d83416a) 中建立。Created subscription [...] 證實 MySub 已成功建立,並正確綁定到 MyTopic 主題。messageIds: - '21022724563390913',這表示您的 "Hello World" 訊息已經成功進入 Pub/Sub 系統中排隊。DATA: Hello World,且底下的 ACK_STATUS: SUCCESS 代表這則訊息已經被自動確認處理完畢,Pub/Sub 系統不會再將這則訊息重複派發給這個訂閱。根據 Pub/Sub: Qwik Start - Console 網頁內容,Task 3 共有兩道選擇題。以下是正確答案以及詳細的觀念說明:
題目:
A publisher application creates and sends messages to a ____. Subscriber applications create a ____ to a topic to receive messages from it.
(發布者應用程式建立並將訊息發送到 ____。訂閱者應用程式針對主題建立 ____ 以從中接收訊息。)
正確選項:
topic, subscription
詳細說明:
這題測驗的是 Cloud Pub/Sub 的核心基礎架構:
題目:
Cloud Pub/Sub is an asynchronous messaging service designed to be highly reliable and scalable.
(Cloud Pub/Sub 是一個設計為高可靠性且具備擴展性的非同步訊息傳遞服務。)
正確選項:
True (正確)
詳細說明:
這句話完美總結了 Cloud Pub/Sub 的三大特性: