【 Cloud 】透過 Node.js 的 Express 與 Proxy Server 操作 Azure Digital Twin
內容
- 學習目標
- 前置準備作業
- 建立 Azure Digital Twin
- 安裝 AZ Tool 並登入
- 撰寫 Proxy Server
- 透過 Node.js 上傳 DTDL 到 Azure Digital Twin
- 透過 Node.js 在 Azure Digital Twin 中建立 Twin
- 透過 Node.js 在 Azure Digital Twin 中建立 Twin 間的 Relationship
- 透過 Node.js 取得 Azure Digital Twin 中的 DTDL
- 透過 Node.js 取得 Azure Digital Twin 中的 Twin 資訊
- 透過 Node.js 取得 Azure Digital Twin 中的 Relationship 資訊
- 透過 Node.js 更新 Twin 資訊
- 透過 Node.js 刪除 Relationship
- 透過 Node.js 刪除 Twin
- 透過 Node.js 刪除 DTDL
學習目標
- 如何透過
Node.js
的Express
與Proxy Server
操作Azure Digital Twin
前置準備作業
- 已建立 Azure 帳號並能正常登入
- 已於電腦端安裝 Node.js
- 已於電腦端安裝 IDE,本範例使用 Visual Studio Code
建立 Azure Digital Twin
Step 1. 開啟 Azure Digital Twin
- 在上方搜尋框輸入
digital twin
並點選下方Azure Digital Twins
的搜尋結果
Step 2. 點選上方 + Create
Step 3. 輸入相關資訊
Subscription
欄位選擇所要使用的訂閱。Resource group
欄位輸入此 Digital Twins 所要歸屬於的群組。Resource Name
欄位輸入一個可識別的名稱。Region
欄位請選擇 Digital Twins 服務所要位於的資料中心。- 勾選
Assign Azure Digital Twins Data Owner Role
欄位。 - 當輸入完成後點選
Review + create
。
Step 4. 建立服務
- 確認資訊正確則點選
Create
。
Step 5. 點選 Go to resource
Step 6. 取得 Host name
安裝 AZ Tool 並登入
Step 1. 安裝 AZ Tool
Step 2. 透過 AZ 登入
- 在終端機輸入下方指令
az login
- 選擇所要登入的帳號
- 登入成功
撰寫 Proxy Server
Step 1. 切換路徑到專案目錄並初始化專案
- 在終端機輸入
npm init -y
Step 2. 安裝套件
- 在終端機輸入下方指令
npm i @azure/identity axios cors dotenv express http-proxy-middleware
Step 3. 撰寫 Proxy 程式
- 建立
index.js
檔案並輸入下方資訊
Step 4. 建立 env
- 建立
.env
檔案並輸入下方資訊- 請將
ADT-Host-Name
改成建立 Azure Digital Twin
段落中Step 6
所取得的 Host name
- 請將
AZURE_DIGITAL_TWINS_HOST_NAME=https://ADT-Host-Name
Step 5.執行
- 在終端機輸入下方指令
node index.js
透過 Node.js 上傳 DTDL 到 Azure Digital Twin
Step 1. 上傳 Device DTDL
- 在本地端建立
ADT_DTDL_Device.json
檔案並輸入下方資訊
- 在本地端建立
uploadModel-Device.js
檔案並輸入下方程式
- 執行程式
- 在終端機切換目錄到
uploadModel-Device.js
所在位置並輸入node uploadModel-Device.js
- 在終端機切換目錄到
Step 2. 上傳 Room DTDL
- 在本地端建立
ADT_DTDL_Room.json
檔案並輸入下方資訊
- 在本地端建立
uploadModel-Room.js
檔案並輸入下方程式
- 執行程式
- 在終端機切換目錄到
uploadModel-Room.js
所在位置並輸入node uploadModel-Room.js
- 在終端機切換目錄到
Step 3. 透過 Azure Digital Twins Explorer 看結果
透過 Node.js 在 Azure Digital Twin 中建立 Twin
Step 1. 建立 Device Twin
- 在本地端建立
addTwin-Device.js
檔案並輸入下方程式
- 執行程式
- 在終端機切換目錄到
addTwin-Device.js
所在位置並輸入node addTwin-Device.js
- 在終端機切換目錄到
Step 2. 建立 Room Twin
- 在本地端建立
addTwin-Room.js
檔案並輸入下方程式
- 執行程式
- 在終端機切換目錄到
addTwin-Room.js
所在位置並輸入node addTwin-Room.js
- 在終端機切換目錄到
Step 3. 透過 Azure Digital Twins Explorer 看結果
透過 Node.js 在 Azure Digital Twin 中建立 Twin 間的 Relationship
Step 1. 建立 Room Twin 與 Device Twin 間的關聯
- 在本地端建立
addRelationship.js
檔案並輸入下方程式
- 執行程式
- 在終端機切換目錄到
addRelationship.js
所在位置並輸入node addRelationship.js
- 在終端機切換目錄到
Step 2. 透過 Azure Digital Twins Explorer 看結果
透過 Node.js 取得 Azure Digital Twin 中的 DTDL
Step 1. 取得所有 DTDL
- 在本地端建立
listModel.js
檔案並輸入下方程式
- 執行程式
- 在終端機切換目錄到
listModel.js
所在位置並輸入node listModel.js
- 在終端機切換目錄到
Step 2. 透過 DTDL ID 取得所對應的 DTDL
- 在本地端建立
getModelById.js
檔案並輸入下方程式
- 執行程式
- 在終端機切換目錄到
getModelById.js
所在位置並輸入node getModelById.js
- 在終端機切換目錄到
透過 Node.js 取得 Azure Digital Twin 中的 Twin 資訊
Step 1. 透過 Twin ID 取得 Twin 資訊
- 在本地端建立
getTwinById.js
檔案並輸入下方程式
- 執行程式
- 在終端機切換目錄到
getTwinById.js
所在位置並輸入node getTwinById.js
- 在終端機切換目錄到
透過 Node.js 取得 Azure Digital Twin 中的 Relationship 資訊
Step 1. 取得所有 Relationship
- 在本地端建立
listRelationships.js
檔案並輸入下方程式
- 執行程式
- 在終端機切換目錄到
listRelationships.js
所在位置並輸入node listRelationships.js
- 在終端機切換目錄到
Step 2. 透過 Relationship ID 取得所對應的 Relationship
- 在本地端建立
listRelationshipById.js
檔案並輸入下方程式
- 執行程式
- 在終端機切換目錄到
listRelationshipById.js
所在位置並輸入node listRelationshipById.js
- 在終端機切換目錄到
透過 Node.js 更新 Twin 資訊
Step 1. 更新 Twin 資訊
- 在本地端建立
updateTwin.js
檔案並輸入下方程式
- 執行程式
- 在終端機切換目錄到
updateTwin.js
所在位置並輸入node updateTwin.js
- 在終端機切換目錄到
- 透過 Azure Digital Twins Explorer 看結果
透過 Node.js 刪除 Relationship
Step 1. 刪除 Relationship
- 在本地端建立
deleteRelationship.js
檔案並輸入下方程式
- 執行程式
- 在終端機切換目錄到
deleteRelationship.js
所在位置並輸入node deleteRelationship.js
- 在終端機切換目錄到
- 透過 Azure Digital Twins Explorer 看結果
透過 Node.js 刪除 Twin
Step 1. 刪除 Device Twin
- 在本地端建立
deleteTwin.js
檔案並輸入下方程式
- 執行程式
- 在終端機切換目錄到
deleteTwin.js
所在位置並輸入node deleteTwin.js
- 在終端機切換目錄到
- 透過 Azure Digital Twins Explorer 看結果
透過 Node.js 刪除 DTDL
Step 1. 刪除 Device DTDL
- 在本地端建立
deleteModel.js
檔案並輸入下方程式
- 執行程式
- 在終端機切換目錄到
deleteModel.js
所在位置並輸入node deleteModel.js
- 在終端機切換目錄到
- 透過 Azure Digital Twins Explorer 看結果