【 Cloud 】透過 ngrok 接收 Azure Blob Web Hook 觸發事件
學習目標
- 如何在本地端電腦透過 ngrok 接收 Azure Blob Web Hook 觸發事件
前置準備作業
- 已建立 Azure 帳號並能正常登入與使用
- 已於電腦端安裝 Node.js
- 已於電腦端安裝 IDE,本範例使用 Visual Studio Code
撰寫接收 Azure Blob 觸發事件程式
Step 1. 初始化專案
- 請在終端機輸入下方指令
npm init -y
Step 2. 安裝套件
- 請在終端機輸入下方指令
npm i express body-parser
Step 3. 撰寫程式
- 請建立名為
index.js的檔案並輸入下方程式
Step 4. 執行程式
- 請在終端機切換目錄到
index.js的檔案所在位置並再輸入下方指令
node index.js

透過 ngrok 取得對外可存取得 https URL
Step 1. 下載 ngrok 並進行 zip 解壓縮
- 下載網址 https://ngrok.com/
Step 2. 啟動 ngrok 並取得 https URL
- 請在終端機切換目錄到
ngrok的檔案所在位置並再輸入下方指令
./ngrok http 8000
- 取得 https URL

建立與設定 Azure Blob
Step 1. 開啟 Azure Blob
- 在上方搜尋框輸入
blob並點選下方Storage accounts的搜尋結果

Step 2. 建立 Azure Storage accounts
- 點選左上角的
+ Create

Step 3. 輸入相關資訊

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

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

Step 5. 建立完成畫面並點選 Go to resource

Step 6. 建立事件的 Web Hook
- 點選左側的
Events> 再點選More Options> 點選Web Hook

- 輸入相關資訊
Name欄位欄位請輸入一個唯一且可識別的名稱- 本範例使用
blob-event-subscription
- 本範例使用
System Topic Name欄位欄位請輸入一個唯一且可識別的名稱- 本範例使用
blob-event-topic
- 本範例使用
Filter to Event Types欄位請選擇Blob Created與Blob DeletedEndpoint Type欄位請選擇Web HookEndpoint欄位請輸入透過 ngrok 取得對外可存取得 https URL段落Step 2中取得的 https URL 後再點選Confirm Selection- 以上資訊輸入完成後請點選左下角的
Create


Step 7. 查看執行 ngrok 的終端機
ngrok端收到所傳送來的驗證事件

Step 8. 查看執行 index.js 的終端機
index.js端收到所傳送來的驗證事件

測試與驗證
Step 1. 建立 Container
- 點選左側的
Containers> 再點選上方的+ ContainersName欄位輸入一個可識別的名稱- 本範例使用
datas
- 本範例使用
Public access level欄位選擇Container (anonymous read access for containers and blobs)- 以上資訊輸入完成後請點選左下角的
Create



Step 2. 上傳檔案到 Container
- 點選所建立的 Container

- 點選
Upload

- 點選
資料夾icon

- 點選
Upload按鈕

- 上傳成功

Step 3. 查看執行 ngrok 的終端機
ngrok端收到由 Azure Blob 所傳送來的觸發事件

Step 4. 查看執行 index.js 的終端機
index.js端收到由 Azure Blob 所傳送來的觸發事件
