在本教學課程中,您會使用資料流程,將訊息從 MQTT 訊息代理程式轉送至「Azure 事件中樞」服務的事件中樞。 事件中樞可以將資料傳遞給其他雲端服務,以進行儲存和分析。 在下一個教學課程中,您將使用即時儀表板來視覺化資料。
先決條件
開始本教學課程之前,您必須先完成教學課程:將 OPC UA 資產新增至 Azure IoT 操作叢集。
我們會解決什麼問題?
若要使用 Microsoft Fabric Real-Time 儀錶板等工具來分析 OPC UA 數據,您必須將數據傳送至 Azure 事件中樞等雲端服務。 資料流程可以訂閱 MQTT 主題,並將訊息轉送至「Azure 事件中樞」命名空間內的事件中樞。 下一個教學課程說明如何使用即時儀表板來視覺化及分析您的資料。
設定環境變數
請確定在你的終端中已設定下列環境變數:
小提示
若要檢視您在資源群組中建立的使用者指派受控識別,請在命令列中執行下列命令: az identity list -g $RESOURCE_GROUP -o table
# 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>
# The name of the user-assigned managed identity that you created for cloud connections
USER_ASSIGNED_MI_NAME=<cloud-connection-uami>
建立事件中樞命名空間
若要建立「事件中樞」命名空間和事件中樞,請在殼層中執行下列 Azure CLI 命令。 這些命令會在與 Kubernetes 叢集相同的資源群組中建立事件中樞命名空間:
az eventhubs namespace create --name ${CLUSTER_NAME:0:24} --resource-group $RESOURCE_GROUP --disable-local-auth true
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 identity show --name $USER_ASSIGNED_MI_NAME --resource-group $RESOURCE_GROUP --query principalId --output tsv)
az role assignment create --role "Azure Event Hubs Data Sender" --assignee $PRINCIPAL --scope $EVENTHUBRESOURCE
建立數據流以將訊息傳送至事件中樞
使用作業體驗 Web UI 來建立及設定叢集中的數據流::
- 將傳入訊息中的
temperature欄位重新命名為TemperatureF。 - 新增一個名為
AssetId的欄位,其中包含資產的名稱。 - 將轉換的訊息從 MQTT 主題轉送至您所建立的事件中樞。
若要建立資料流程:
流覽至作業體驗 Web UI 並找出您的實例。 然後選取 [資料流程端點],並在 [Azure 事件中樞] 圖格中選取 [+ 新增]:
在 [建立新的數據流端點:Azure 事件中樞]中,輸入 event-hubs-target 作為名稱,然後尋找您在 [ 主機 ] 字段中建立的事件中樞命名空間。
選取使用者指派的受控識別作為驗證方法。 新增您用於雲端連線的使用者指派受控識別的用戶端識別碼和租用戶識別碼。 使用以下 CLI 命令,列出您的資源群組中所指派的使用者管理的身分的用戶端識別碼和租戶識別碼:
az identity list -g $RESOURCE_GROUP -o table。選取 [套用]:
隨即會建立新的資料流程端點,並顯示在 [資料流程端點] 頁面上的清單中。
選取 [資料流程],然後選取 [+ 建立資料流程]。 隨即會顯示 <new-data-flow> 頁面:
在資料流程編輯器中,選取 [選取來源]。 然後選取您先前建立的恆溫器資產,然後選取 [繼續]。
在資料流程編輯器中,選取 選取目的地。 然後選取您先前建立的 event-hubs-target 端點,並選取 [繼續]。
在下一個頁面上,輸入 destinationeh 作為主題。 此主題會指向您在「事件中樞」命名空間中已建立的中樞。 選取 ,然後套用。 現在,您的資料流程以控溫器資產作為其來源,並以「事件中樞」命名空間中的中樞作為目的地。
若要新增轉換,請選取 [新增轉換 (選用)]。
若要重新命名傳入訊息中的
temperature欄位,請選取 [重新命名] 圖格中的 [+ 新增]。新增下列的重新命名轉換:
數據點 新增資料點名稱 temperature.Value ThermostatTemperatureF 若要從訊息中繼資料複製資產識別碼,請新增下列重新命名轉換:
數據點 新增資料點名稱 $metadata.user_property.externalAssetId 資產識別碼 重新命名轉換看起來像下列螢幕擷取畫面:
選取 ,然後套用。
資料流程編輯器現在看起來像下列螢幕擷取畫面:
若要開始執行資料流程,請輸入 tutorial-data-flow 作為其名稱,然後選取 [儲存]。 幾分鐘後,[佈建狀態] 會變更為 [已成功]。 資料流程現在正在您的叢集中執行。
您的資料流程會訂閱 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。
備註
資源群組包含您在本教學課程中已建立的「事件中樞」命名空間。