引入用於 Azure IoT Edge 的 Visual Studio 工具
今天,我們很高興地釋出用於 Visual Studio 2017 的 Azure IoT Edge 工具的預覽版。Azure IoT Edge 是一個全託管服務,透過直接在跨平臺物聯網裝置上部署並執行人工智慧、Azure 服務和自定義邏輯,從而在本地提供雲智慧。使用此預覽版,您可以在 Visual Studio 中建立 Azure IoT Edge 專案,新增 C# 自定義模組,生成模組,並將這些模組推送到 IoT Edge 裝置上。此外,您還可以在本地 Visual Studio 中同時除錯單個 C# 模組或多個模組。
在這篇文章中,我們將向您介紹如何使用 Visual Studio 2017 建立、構建、除錯和部署您的首個 IoT Edge 解決方案。
開始使用前,我們需要做以下準備工作。
-
安裝 .Net Core 2.1 SDK。
-
安裝 Windows 版 Docker CE。同時確保 Docker CE 以所需的容器樣式(Windows 或 Linux)執行。
-
安裝 Python 和 Pip。要安裝 Azure IoT Edge Hub Dev 工具,必須安裝 Python 和 Pip。
-
在終端中執行以下命令,安裝 Azure IoT Edge Hub Dev 工具 (iotedgehubdev)
pip install -U iotedgehubdev
-
從 Visual Studio 市場安裝 Visual Studio 版 Azure IoT Edge 工具。
-
更新 Visual Studio 的 Cloud Explorer。“工具” > “擴充套件…” > “查詢 Cloud Explorer”,然後單擊“更新”按鈕(版本號)
在 Azure IoT Edge 示例專案中,我們將從 C# 模組開始,該模組可將訊息從模擬溫度感測器直接傳送到 Azure IoT 中心。
■ 1、在 Visual Studio 中,導航到“檔案” > “新建” > “專案”
■ 2、在 “Visual C#” 部分下選擇“雲”節點,然後選擇 “Azure IoT Edge” 專案型別。如果需要,您可以指定“解決方案名稱”和“解決方案位置”。然後單擊“確定”。
■ 3、在“模組配置”視窗中,您需要提供 C# 模組專案名稱和 Docker 映像儲存庫。若要在 Azure 容器登錄檔上託管映像,請將 localhost:5000 替換為從 ACR 複製的登入伺服器值。最終字串與 .azurecr.io/iotedgemodule1 類似。然後單擊“確定”。
現在,Visual Studio 向您提供 Azure IoT Edge 解決方案,其中有兩個專案。
-
AzureIoTEdgeApp1 是 Azure IoT Edge 專案,包含 Azure IoT Edge 部署清單模板,該模板描述解決方案的模組映像以及模組間的路由。
-
IoTEdgeModule1 是第一個 C# 模組專案,屬於 .Net Core 控制檯應用程式。
通常,我們希望先測試/除錯每個模組之後,再讓該模組與多個模組一起在整個解決方案中執行。
■ 1、成功建立專案後,在背景關係選單中將 IoTEdgeModule1 選為預設專案。
■ 2、按 F5 或單擊以下按鈕執行模組,第一次可能耗時 10~20 秒。
註:如果發現任何衝突錯誤,則需使用 Docker CLI 停止正在執行的同名容器,然後再按一次 F5。
■ 3、如果模組已成功初始化,您將看到 .Net Core 控制檯應用程式已啟動。
■ 4、現在您可以在 Program.cs 的 PipeMessage 中設定斷點,然後在 Git Bash 或 WSL Bash 中執行以下命令來傳送訊息(請勿在 CMD 或 Powershell 中執行以下命令)(您也可以在“輸出”視窗中找到此命令):
curl --essay-header "Content-Type: application/json" --request POST --data '{"inputName": "input1","data":"hello world"}' http://localhost:53000/api/v1/messages
■ 5、斷點應被觸發。您可以在“Visual Studio 區域性變數”視窗中檢視變數。
開發了單個模組之後,接下來,我們希望執行和除錯具有多個模組的整個解決方案。
■ 1、將第二個 C# 模組新增到解決方案中。右擊 AzureIoTEdgeApp1 並選擇“新增” > “新建 IoT Edge 模組”。此操作將把 IoTEdgeModule2 新增到專案中,還會更新 AzureIoTEdgeApp1 專案中的 deployment.template.json。第二個模組仍然是一個管道模組,接收來自模擬溫度感測器的訊息,並將訊息傳送給 IoT 中心。
■ 2、將 AzureIoTEdgeApp1 專案設為啟動專案。
■ 3、按 F5,然後即可同時執行和除錯多個模組。您將會看到多個 .Net Core 控制檯應用程式視窗,每個視窗都顯示 C# 模組。若要更新模組拓撲,請更新 AzureIoTEdgeApp1 > deployment.template.json 中的路由部分。
接下來,我們將所有 C# 模組放入 Docker 映像中並推送到 ACR。
■ 1、請確保啟動專案是 AzureIoTEdgeApp1。選擇“除錯”或“釋出”配置,以生成模組映像。
■ 2、在終端透過以下命令執行 Docker 登入
docker login -u -p
■ 3、使用以下內容更新 deployment.template.json。請記住將佔位符替換為實際的管理員使用者名稱和密碼。
■ 4、右擊 AzureIoTEdgeApp1 並選擇背景關係選單項“生成並推送 Edge 解決方案”,該項將為每個模組生成和推送 Docker 映像。
現在所有映像都可以在 ACR 中部署。
■ 1、單擊“試圖” > Cloud Explorer,開啟 Cloud Explorer
■ 2、右擊 IoT Edge 裝置,為其建立部署,你需要選擇 $AzureIoTEdgeApp1\config\Debug|Release\deployment.json 下的部署清單檔案。
註:您需要自行在 Windows 或 Linux 裝置上設定 IoT Edge 守護程式。
要監視特定裝置的 D2C 訊息,請右擊串列中的裝置,然後選擇“開始監視 D2C 訊息”。
由於這是 Visual Studio 中 IoT Edge 工具的第一個預覽版,因此存在幾個已知的侷限,具體如下:
-
用於部署清單檔案的 IntelliSense:除 Json 驗證之外,我們還沒有用於 deployment.template.json 和 deployment.json 的 IntelliSense。
-
僅支援 C# 自定義模組:我們計劃儘快為自定義模組和函式支援新增其他語言。
-
僅支援 Amd64 Linux 和 Windows Docker 檔案:我們正在為 arm-Linux 模組進行交叉編譯。
透過 Visual Studio 2017 中的這些新工具,您現在可以使用 Azure IoT Edge 輕鬆建立、除錯和部署解決方案。請從 Azure IoT Edge for Visual Studio 下載並試用它(預覽版)。此外,請將您遇到的任何問題、任何功能請求或其他問題報告給 vsciet@microsoft.com。
▶ 本文翻譯轉載自MSDN網站