【 Cloud 】使用 Node.js 透過 Azure Event Hub 傳送與接收訊息 - Consumer & Producer

【 Cloud 】使用 Node.js 透過 Azure Event Hub 傳送與接收訊息 - Consumer & Producer
Photo by Aydin Hassan / Unsplash

內容

  • 學習目標
  • 前置準備作業
  • 流程
  • 建立與設定 Azure Event Hub
  • 撰寫 Consumer Client 程式
  • 撰寫 Producer Client 程式
  • 測試驗證

學習目標

  • 如何使用 Node.js 透過 Azure Event Hub 傳送與接收訊息

前置準備作業

  • 已建立 Azure 帳號並能正常登入
  • 已於電腦端安裝 Node.js
  • 已於電腦端安裝 IDE,本範例使用 Visual Studio Code

流程

---2021-12-08---8.04.08

  • 建立與設定 Azure Event Hub
    • 取得 Event Hub 名稱
    • 取得 Consumer Group 資訊
    • 取得 Connection String 資訊
  • Producer 將訊息傳送到 Azure Event Hub
  • Consumer 接收特定 Consumer Group 的訊息

建立與設定 Azure Event Hub

Step 1. 登入到 Microsoft Azure

---2020-05-06---2.22.35


Step 2. 開啟 Azure Event Hub

  • 在上方搜尋框輸入 event hub 並點選下方 Event Hubs 的搜尋結果

---2021-12-08---8.17.22


Step 3. 建立 Azure Event Hub Namespace

  • 點選左上角的 Create

---2021-12-08---8.22.20


  • 輸入相關資訊
    • Subscription 欄位請選擇所要使用哪個訂閱帳號
    • Resource Group 欄位請選擇使用舊有的或新建立一個新的
    • Namespace name 欄位請輸入一個唯一且可識別的名稱
      • 本範例使用 event-hub-tests
    • Location 欄位請選擇此服務所要建立在哪個資料中心
    • Pricing tier 欄位選擇所要使用的等級
    • 以上資訊輸入完成後請點選左下角的 Review + create

---2021-12-08---8.24.47


  • 再次確認相關資訊後請按左下角的 Create

---2021-12-08---8.28.21


  • 建立完成畫面並點選 Go to resource

---2021-12-08---8.29.58


Step 4. 建立 Azure Event Hub

  • 點選左側的 Event Hubs

---2021-12-08---8.33.36


  • 點選上方的 + Event Hub

---2021-12-08---8.35.20


  • 輸入相關資訊
    • Name 欄位請輸入一個唯一且可識別的名稱
      • 本範例使用 PubSub
    • 以上資訊輸入完成後請點選左下角的 Create

---2021-12-08---8.37.25-1

  • 建立完成

---2021-12-08---8.39.30--


Step 5. 取得 Consumer Group

  • 點選所建立的 Event Hub

---2021-12-08---8.39.30


  • 點選左側的 Consumer Groups

---2021-12-08---8.42.17


  • 取得 Consumer Group

---2021-12-08---8.43.56


Step 6. 取得 Connection String

  • 點選左側的 Shared access policies > 再點選上方的 + Add

---2021-12-08---8.46.02


  • 輸入相關資訊
    • Policy name 欄位請輸入可識別的名稱
      • 本範例使用 send-listen-policy
    • 點選 SendListen
    • 以上資訊輸入完成後請點選左下角的 Create

---2021-12-08---8.48.43

---2021-12-08---8.49.15


  • 點選所建立的 Policy

---2021-12-08---8.50.22


  • 取得 Connection String

---2021-12-08---8.51.22

撰寫 Consumer Client 程式

Step 1. 初始化專案

  • 在終端機輸入下方指令
npm init -y

Step 2. 安裝套件

  • 在終端機輸入下方指令
npm i dotenv @azure/event-hubs

Step 3. 撰寫程式

  • 建立一個名為 consumer.js 的程式,其程式如下 :

Step 4. 建立設定檔

  • 建立一個名為 .env 的設定檔,其內容如下 :
    • 請將第一行的 EVENTHUB_NAME= 右邊輸入 建立與設定 Azure Event Hub 段落 Step 4 所建立的 Event Hub 名稱
    • 請將第二行的 CONSUMER_GROUP_NAME= 右邊輸入建立與設定 Azure Event Hub 段落 Step 5 所取得的 Consumer Group
    • 請將第三行的 EVENTHUB_CONNECTION_STRING= 右邊輸入建立與設定 Azure Event Hub 段落 Step 6 所取得的 Connection String

撰寫 Producer Client 程式

Step 1. 撰寫程式

  • 建立一個名為 producer.js 的程式,其程式如下 :

測試驗證

Step 1. 執行 consumer.js

  • ① 開啟第一個終端機再切換工作路徑到剛才所建立 consumer.js 程式的地方
  • ② 執行下方指令
node consumer.js

---2021-12-08---9.04.03


Step 2. 執行 producer.js

  • ① 開啟第二個終端機再切換工作路徑到剛才所建立 producer.js 程式的地方
  • ② 執行下方指令
node producer.js

---2021-12-08---9.05.41


Step 3. 驗證

  • 查看 Step 1 的執行視窗會看到已收到 producer.js 所傳送來的訊息

---2021-12-08---9.05.49

GitHub

List of blogs