快速入門:將第一個IoT Edge模組部署至 Windows 裝置

適用於:IoT Edge 1.4 複選標記 IoT Edge 1.4

重要

支援的版本是 IoT Edge 1.4。 如果您是舊版,請參閱更新 IoT Edge

在本快速入門中試用 Azure IoT Edge,方法是將容器化程式代碼部署至 Windows IoT Edge 裝置上的 Linux。 IoT Edge 可讓您從遠端管理裝置上的程式碼,讓您可以將更多工作負載傳送至邊緣。 在本快速入門中,建議您使用自己的 Windows 用戶端裝置,瞭解在 Windows 上使用適用於 Linux 的 Azure IoT Edge 是多麼容易。 如果您想要使用 Windows Server 或 Azure VM 來建立部署,請遵循如何在 Windows 裝置上安裝及布建適用於 Linux 的 Azure IoT Edge 指南中的步驟。

在本快速入門中,您將瞭解如何:

  • 建立IoT中樞。
  • 向IoT中樞註冊IoT Edge裝置。
  • 在裝置上的 Windows 執行時間上安裝並啟動適用於 Linux 的 IoT Edge。
  • 從遠端將模組部署至IoT Edge裝置,並傳送遙測。

此圖表顯示您裝置和雲端本快速入門的架構。

本快速入門會逐步引導您瞭解如何在 Windows 裝置上設定適用於 Linux 的 Azure IoT Edge。 然後,您會將模組從 Azure 入口網站 部署到您的裝置。 您將使用的模組是會產生溫度、濕度和壓力數據的模擬感測器。 其他 Azure IoT Edge 教學課程是以您在這裡所做的工作為基礎,部署模組來分析商務深入解析的模擬數據。

如果您沒有使用中的 Azure 訂用帳戶,請在開始前建立免費帳戶

必要條件

備妥環境以使用 Azure CLI。

建立雲端資源群組來管理您將在本快速入門中使用的所有資源。

az group create --name IoTEdgeResources --location westus2

請確定您的 IoT Edge 裝置符合下列需求:

  • 系統需求

    • Windows 101/11 (專業版、企業版、IoT 企業版) 1 Windows 10 最低組建 17763,並已安裝所有目前的累積更新。
  • 硬體需求

    • 最小可用記憶體:1 GB
    • 最小可用磁碟空間:10 GB

建立 IoT 中樞

首先,使用 Azure CLI 建立 IoT 中樞。

此圖顯示建立 I o T 中樞的步驟。

免費層級的 Azure IoT 中樞 適用於本快速入門。 如果您過去已使用 IoT 中樞,且已建立中樞,則可以使用該 IoT 中樞。

下列程式代碼會在資源群組 IoTEdgeResources中建立免費的 F1 中樞。 以 IoT 中樞的唯一名稱來取代 {hub_name}。 建立IoT中樞可能需要幾分鐘的時間。

az iot hub create --resource-group IoTEdgeResources --name {hub_name} --sku F1 --partition-count 2

如果您因為訂用帳戶中已經有一個免費中樞而收到錯誤,請將 SKU 變更為 S1。 如果您收到IoT中樞名稱無法使用的錯誤,其他人已經有該名稱的中樞。 請嘗試使用新名稱。

註冊 IoT Edge 裝置

向新建立的 IoT 中樞註冊 IoT Edge 裝置。

此圖顯示向 I o T 中樞身分識別註冊裝置的步驟。

建立模擬裝置的裝置身分識別,以便與IoT中樞通訊。 裝置身分識別存在於雲端,您可以使用唯一裝置連接字串來建立實體裝置與裝置身分識別的關聯。

IoT Edge 裝置的行為和管理方式與一般 IoT 裝置不同。 --edge-enabled使用旗標來宣告此身分識別適用於IoT Edge裝置。

  1. 在 Azure Cloud Shell 中,輸入下列命令,以在中樞中建立名為 myEdgeDevice 的 裝置。

    az iot hub device-identity create --device-id myEdgeDevice --edge-enabled --hub-name {hub_name}
    

    如果您收到原則密鑰的錯誤 iothubowner ,請確定 Cloud Shell 正在執行最新版的 Azure IoT 擴充功能。

  2. 檢視裝置的連接字串 (此字串會連結實體裝置與其在 IoT 中樞的身分識別)。 其中包含IoT中樞的名稱、裝置的名稱,以及驗證兩者之間連線的共用密鑰。

    az iot hub device-identity connection-string show --device-id myEdgeDevice --hub-name {hub_name}
    
  3. 從 JSON 輸出複製 connectionString 金鑰值並加以儲存。 此值是裝置連接字串。 您將在下一節中使用它來設定IoT Edge運行時間。

    例如,您的 連接字串 看起來應該類似 HostName=contoso-hub.azure-devices.net;DeviceId=myEdgeDevice;SharedAccessKey=<DEVICE_SHARED_ACCESS_KEY>

安裝並啟動IoT Edge運行時間

在您的裝置上安裝適用於Linux的IoT Edge,並使用裝置 連接字串 進行設定。

此圖顯示啟動 I o T Edge 執行時間的步驟。

在您想要在 Windows 上部署適用於 Linux 的 Azure IoT Edge 的目標裝置上執行下列 PowerShell 命令。 若要使用 PowerShell 部署至遠端目標裝置,請使用 遠端 PowerShell 建立遠端裝置的連線,並在該裝置上遠端執行這些命令。

  1. 在提升許可權的 PowerShell 工作階段中,執行下列命令以啟用 Hyper-V。 如需詳細資訊,請參閱 Windows 10 上的 Hyper-V。

    Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
    
  2. 在提升許可權的 PowerShell 工作階段中,執行下列每個命令,以在 Windows 上下載適用於 Linux 的 IoT Edge。

    • X64/AMD64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_X64" -OutFile $msiPath
      
    • ARM64

      $msiPath = $([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))
      $ProgressPreference = 'SilentlyContinue'
      Invoke-WebRequest "https://aka.ms/AzEFLOWMSI_1_4_LTS_ARM64" -OutFile $msiPath
      
  3. 在裝置上的 Windows 上安裝適用於 Linux 的 IoT Edge。

    Start-Process -Wait msiexec -ArgumentList "/i","$([io.Path]::Combine($env:TEMP, 'AzureIoTEdge.msi'))","/qn"
    
  4. 如果目標裝置尚未執行,請將目標裝置上的執行原則設定為 AllSigned 。 您可以使用下列方式,在提升許可權的 PowerShell 提示字元中檢查目前的執行原則:

    Get-ExecutionPolicy -List
    

    如果 的執行原則 local machine 不是 AllSigned,您可以使用下列項目來設定執行原則:

    Set-ExecutionPolicy -ExecutionPolicy AllSigned -Force
    
  5. 在 Windows 部署上建立適用於 Linux 的 IoT Edge。

    Deploy-Eflow
    
  6. 輸入 『Y』 以接受授權條款。

  7. 根據您的喜好設定,輸入 『O』 或 『R』 來切換 選擇性診斷數據 。 成功的部署如下圖所示。

    顯示成功部署的螢幕快照,會顯示主控台訊息結尾的部署成功。

  8. 使用您在上一節中擷取的裝置 連接字串 布建裝置。 將佔位元文字取代為您自己的值。

    Provision-EflowVm -provisioningType ManualConnectionString -devConnString "<CONNECTION_STRING_HERE>"
    

IoT Edge 裝置現已設定完成。 其已準備好執行雲端部署的模組。

部署模組

從雲端管理 Azure IoT Edge 裝置,以部署將遙測數據傳送至 IoT 中樞 的模組。

顯示部署模組步驟的圖表。

Azure IoT Edge 的主要功能之一是從雲端將程式代碼部署到 IoT Edge 裝置。 IoT Edge 模組 是實作為容器的可執行套件。 在本節中,您將直接從 azure Marketplace[IoT Edge 模組] 區段部署預先建置的模組 Azure IoT 中樞。

您在本節中部署的模組會模擬感測器,並傳送產生的數據。 當您開始使用IoT Edge時,此課程模組是實用的程式代碼片段,因為您可以使用仿真的數據進行開發和測試。 如果您想要確切查看此模組的用途,您可以檢視 仿真的溫度感測器原始程式碼

請遵循下列步驟,從 Azure Marketplace 部署您的第一個模組。

  1. 登入 Azure 入口網站 並移至IoT中樞。

  2. 從左側功能表中,選取 [裝置管理] 功能表下的 [裝置]。

  3. 從裝置清單中選取目標裝置的裝置標識碼。

    注意

    當您建立新的 IoT Edge 裝置時,它會在 Azure 入口網站 中顯示狀態代碼417 -- The device's deployment configuration is not set。 此狀態正常,表示裝置已準備好接收模組部署。

  4. 在上方列上,選取 [ 設定模組]。

    選擇您想要在裝置上執行的模組。 您可以選擇您已建立的模組、來自 Azure Marketplace 的模組,或您自己建置的模組。 在本快速入門中,您將從 Azure Marketplace 部署模組。

  5. [IoT Edge 模組] 下,開啟 [ 新增 ] 下拉功能表,然後選取 [Marketplace 模組]。

  6. IoT Edge 模組 Marketplace 中,搜尋並選取 Simulated Temperature Sensor 模組。 模組會新增至具有所需 執行 狀態的IoT Edge模組區段。

  7. 選取 [ 下一步:路由 ] 以繼續設定路由。

    當您從 Azure Marketplace 新增模組時,會自動建立名為 SimulatedTemperatureSensorToIoTHub 的路由。 此路由會將模擬溫度模組中的所有訊息傳送至 IoT 中樞。

  8. 完成時,選取 [下一步:檢閱 + 建立]。

  9. 檢閱 JSON 檔案,然後選取 [ 建立]。 JSON 檔案會定義您部署至 IoT Edge 裝置的所有模組。

    注意

    當將新的部署提交至 IoT Edge 裝置時,不會有任何項目推送至裝置。 此時,裝置會定期查詢 IoT 中樞以取得新的指示。 裝置在發現更新的部署資訊清單時,即會使用新部署的相關資訊從雲端提取模組映像,然後開始在本機執行模組。 此程序可能需要幾分鐘的時間。

建立模組部署詳細數據之後,精靈會返回裝置詳細數據頁面。 在 [ 模組 ] 索引標籤上檢視部署狀態。

您應該會看到三個模組: $edgeAgent$edgeHubSimulatedTemperatureSensor。 如果一或多個模組在 [部署中指定的] 下[是],但不在 [裝置回報] 底下,您的 IoT Edge 裝置仍在啟動它們。 等候幾分鐘,然後重新整理頁面。

顯示已部署模組清單中 SimulatedTemperatureSensor 的螢幕快照。

如果您在部署模組時遇到問題,請參閱從 Azure 入口網站 針對IoT Edge裝置進行疑難解答。

檢視產生的數據

在本快速入門中,您已建立新的 IoT Edge 裝置,並在其上安裝 IoT Edge 運行時間。 然後,您已使用 Azure 入口網站 部署IoT Edge模組,在裝置上執行,而不需要變更裝置本身。

您推送的模組會產生可用於稍後測試的範例環境數據。 模擬感測器同時監視機器和環境。 例如,此感應器可能位於伺服器機房中、廠房中或風力發電機上。 傳送的訊息包括環境溫度和濕度、機器溫度和壓力,以及時間戳。 IoT Edge 教學課程會使用本課程模組所建立的數據作為分析的測試數據。

  1. 在 PowerShell 會話中使用下列命令登入 Windows 虛擬機上的適用於 Linux 的 IoT Edge:

    Connect-EflowVm
    

    注意

    唯一允許透過 SSH 連線到虛擬機的帳戶是建立虛擬機的使用者。

  2. 登入之後,您可以使用下列 Linux 命令來檢查執行 IoT Edge 模組的清單:

    sudo iotedge list
    

    顯示確認您的溫度感測器、代理程式和中樞模組執行位置的螢幕快照。

  3. 使用下列 Linux 命令,檢視從溫度感測器模組傳送至雲端的訊息:

    sudo iotedge logs SimulatedTemperatureSensor -f
    

    顯示模擬溫度感測器模組執行時輸出記錄的螢幕快照。

    提示

    IoT Edge 命令在參考模組名稱時會區分大小寫。

清除資源

如果您想要繼續進行IoT Edge教學課程,請略過此步驟。 您可以使用您在本快速入門中註冊並設定的裝置。 否則,您可以刪除您所建立的 Azure 資源,以避免產生費用。

如果您在新的資源群組中建立虛擬機和IoT中樞,則可以刪除該群組和所有相關聯的資源。 如果您不想刪除整個群組,您可以改為刪除個別資源。

重要

檢查資源群組的內容,以確定沒有您想要保留的內容。 刪除資源群組是無法回復的動作。

使用下列命令來移除 IoTEdgeResources 群組。 刪除可能需要幾分鐘的時間。

az group delete --name IoTEdgeResources

您可以使用此命令來檢視資源群組清單,以確認已移除資源群組。

az group list

在 Windows 上卸載適用於 Linux 的 IoT Edge

如果您想要從裝置移除適用於 Linux 的 Azure IoT Edge,請使用下列命令。

  1. 在 Windows 上開啟 設定
  2. 選取[新增或移除程式]
  3. 選取 Azure IoT Edge 應用程式
  4. 選取 [卸載]

下一步

在本快速入門中,您已建立IoT Edge裝置,並使用 Azure IoT Edge 雲埠將程式代碼部署至裝置。 現在,您有一個測試裝置產生其環境的原始數據。

在下一個教學課程中,您將瞭解如何從 Azure 入口網站 監視裝置的活動和健康情況。