教學課程:使用數據流將資產遙測傳送至雲端
在本教學課程中,您會使用數據流,將訊息從 MQTT 訊息代理程式轉送至 Azure 事件中樞 服務中的事件中樞。 事件中樞可以將資料傳遞給其他雲端服務,以進行儲存和分析。 在下一個教學課程中,您會使用即時儀錶板將數據可視化。
必要條件
開始本教學課程之前,您必須先完成 教學課程:將 OPC UA 資產新增至 Azure IoT 作業叢集。
我們會解決什麼問題?
若要使用即時儀表板之類的工具來分析 OPC UA 資料,您必須將資料傳送至 Azure 事件中樞等雲端服務。 資料流程可以訂閱 MQTT 主題,並將訊息轉送至 Azure 事件中樞命名空間內的事件中樞。 下一個教學課程示範如何使用即時儀錶板來可視化和分析您的數據。
設定環境變數
如果您使用 Codespaces 環境,則已設定必要的環境變數,您可以略過此步驟。 否則,請在殼層中設定下列環境變數:
# The name of the resource group where your Kubernetes cluster is deployed
RESOURCE_GROUP=<resource-group-name>
# The name of your Kubernetes cluster
CLUSTER_NAME=<kubernetes-cluster-name>
建立事件中樞命名空間
若要建立事件中樞命名空間和事件中樞,請在殼層中執行下列 Azure CLI 命令。 這些命令會在與 Kubernetes 叢集相同的資源群組中建立事件中樞命名空間:
az eventhubs namespace create --name ${CLUSTER_NAME:0:24} --resource-group $RESOURCE_GROUP --disable-local-auth false
az eventhubs eventhub create --name destinationeh --resource-group $RESOURCE_GROUP --namespace-name ${CLUSTER_NAME:0:24} --retention-time 1 --partition-count 1 --cleanup-policy Delete
若要授權叢集中的 Azure IoT 操作延伸模組存取事件中樞命名空間,請執行下列 Azure CLI 命令:
EVENTHUBRESOURCE=$(az eventhubs namespace show --resource-group $RESOURCE_GROUP --namespace-name ${CLUSTER_NAME:0:24} --query id -o tsv)
PRINCIPAL=$(az k8s-extension list --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --cluster-type connectedClusters -o tsv --query "[?extensionType=='microsoft.iotoperations'].identity.principalId")
az role assignment create --role "Azure Event Hubs Data Sender" --assignee $PRINCIPAL --scope $EVENTHUBRESOURCE
建立資料流程以將遙測傳送至事件中樞
使用作業體驗UI來建立及設定叢集中的數據流::
- 將
Tag 10
傳入訊息中的欄位重新命名為Humidity
。 - 將
temperature
傳入訊息中的欄位重新命名為Temperature
。 - 新增名為
AssetId
的欄位,其中包含資產的名稱。 - 將轉換的訊息從 MQTT 主題轉送至您所建立的事件中樞。
若要建立資料流:
流覽至作業體驗UI並找出您的實例。 然後選取 [數據流端點],然後在 [Azure 事件中樞] 圖格中選取 [+ 新增]:
在 [建立新的數據流端點:Azure 事件中樞],輸入 event-hubs-target 作為名稱,並使用您建立的事件中樞命名空間位址更新 [主機] 欄位。 選取 [ 套用]:
系統會建立新的數據流端點,並在 [數據流端點] 頁面上的清單中顯示。
選取 [數據流 ],然後選取 [+ 建立數據流]。 new-dataflow ><頁面會顯示:
在數據流編輯器中,選取 [ 選取來源]。 然後選取您先前建立的控溫器資產,然後選取 [ 套用]。
在數據流編輯器中,選取 [ 選取數據流端點]。 然後選取 您先前建立的事件中樞目標 端點,然後選取 [ 套用]。
在下一個頁面上,輸入 destinationeh 作為主題。 本主題是指您在事件中樞命名空間中建立的中樞。 選取套用。 您的數據流現在會將控溫器資產作為其來源,以及事件中樞命名空間中的中樞作為其目的地。
若要新增轉換,請選取 [新增轉換][選擇性]。
若要重新命名傳入訊息中的 和
temperature
字段,請選取 [重新Tag 10
命名] 圖格中的 [+ 新增]。新增下列兩個重新命名轉換:
Datapoint 新增數據點名稱 標記 10.Value 控溫器Humidity 溫度。價值 控溫器Temperature 若要從訊息元資料複製資產標識碼,請新增下列重新命名轉換:
Datapoint 新增數據點名稱 $metadata.user_property.externalAssetId AssetId 重新命名轉換看起來像下列螢幕快照:
選取套用。
資料串流編輯器現在看起來像下列螢幕快照:
若要啟動執行中的數據流,請輸入 tutorial-dataflow 作為其名稱,然後選取 [ 儲存]。 幾分鐘后,[ 布建狀態 ] 會變更為 [成功]。 數據流現在正在叢集中執行。
您的數據流會訂閱 MQTT 主題,以接收來自控溫器資產的訊息。 它會重新命名訊息中的部分欄位,並將轉換的訊息轉送至您所建立的事件中樞。
確認資料正在流動
若要確認數據流向雲端,您可以在 Azure 入口網站 中檢視事件中樞實例。 您可能需要等候數分鐘,數據流才能啟動,以及訊息流向事件中樞。
如果訊息流向實例,您可以在實例 [概觀] 頁面上看到傳入訊息的計數:
如果訊息流動,您可以使用 數據 總管來檢視訊息:
提示
您可能需要將自己指派給事件中樞命名空間 Azure 事件中樞 數據接收者角色,才能檢視訊息。
我們如何解決問題?
在本教學課程中,您已使用數據流,將 MQTT 主題連線到 Azure 事件中樞 命名空間中的事件中樞。 在下一個教學課程中,您會使用 Microsoft Fabric 即時智慧將數據可視化。
清除資源
如果您繼續進行下一個教學課程,請保留所有資源。
如果您想要移除 Azure IoT 作業部署,但保留叢集,請使用 az iot ops delete 命令:
az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP
如果您想要刪除您為此快速入門建立的所有資源,請刪除您已部署 Azure IoT 作業的 Kubernetes 叢集,然後移除包含叢集的 Azure 資源群組。
如果您在這些快速入門中使用 Codespaces,請從 GitHub 刪除您的 Codespace。
注意
資源群組包含您在本教學課程中建立的事件中樞命名空間。