使用 Azure CLI 部署 Azure IoT Edge 模組
適用於: IoT Edge 1.5 IoT Edge 1.4
重要
IoT Edge 1.5 LTS 和 IoT Edge 1.4 LTS 為支援的版本。 IoT Edge 1.4 LTS 於 2024 年 11 月 12 日結束生命週期。 如果您是舊版,請參閱更新 IoT Edge。
只要您使用商務邏輯建立 Azure IoT Edge 模組,便需要將這些模組部署到裝置以在邊緣操作。 如果您有多個模組一起收集及處理資料,您可以一次部署全部的模組。 您也可以宣告連結它們的路由規則。
Azure CLI 是一個開放原始碼跨平台命令列工具,用來管理 Azure 資源 (例如 IoT Edge)。 它可讓您管理 Azure IoT 中樞資源、裝置佈建服務執行個體,以及現成的連結中樞。 新的 IoT 擴充功能會以裝置管理和完整 IoT Edge 功能等功能來擴充 Azure CLI 的功能。
本文說明如何建立 JSON 部署資訊清單,然後使用該檔案將部署發送到 IoT Edge 裝置。 如需根據裝置共用標籤,建立目標為多個裝置的部署資訊,請參閱大規模部署和監視 IoT Edge 模組 (英文)
必要條件
Azure 訂用帳戶中的 IoT 中樞。
IoT Edge 裝置
如果您沒有設定 IoT Edge 裝置,則可以在 Azure 虛擬機器中建立。 請遵循其中一篇快速入門文章中的步驟來建立虛擬 Linux 裝置或建立虛擬 Windows 裝置。
您環境中的 Azure CLI。 Azure CLI 版本至少必須是 2.0.70 或更高版本。 使用
az --version
進行驗證。 此版本支援 az 延伸模組命令,並引進 Knack 命令架構。適用於 Azure CLI 的 IoT 擴充功能 \(英文\)。
設定部署資訊清單
部署資訊清單為 JSON 文件,說明應部署的模組、資料如何在模組之間流動,以及想要的模組對應項需要的屬性。 如需部署資訊清單的功能,以及如何建立此類清單的詳細資訊,請參閱了解如何使用、設定以及重複使用 IoT Edge 模組 (英文)。
若要使用 Azure CLI 部署模組,請在本機上將部署資訊清單儲存成 .json 檔案。 若要執行命令以將設定套用至裝置,您會使用到下一節中的檔案路徑。
下面以具有一個模組的基本部署資訊清單為例:
注意
此範例部署資訊清單會針對 IoT Edge 代理程式和中樞使用結構描述 1.1 版。 結構描述 1.1 版已隨著 IoT Edge 1.0.10 版一起發行,並提供模組啟動順序和路由優先順序等功能。
{
"content": {
"modulesContent": {
"$edgeAgent": {
"properties.desired": {
"schemaVersion": "1.1",
"runtime": {
"type": "docker",
"settings": {
"minDockerVersion": "v1.25",
"loggingOptions": "",
"registryCredentials": {}
}
},
"systemModules": {
"edgeAgent": {
"type": "docker",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-agent:1.5",
"createOptions": "{}"
}
},
"edgeHub": {
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-hub:1.5",
"createOptions": "{\"HostConfig\":{\"PortBindings\":{\"5671/tcp\":[{\"HostPort\":\"5671\"}],\"8883/tcp\":[{\"HostPort\":\"8883\"}],\"443/tcp\":[{\"HostPort\":\"443\"}]}}}"
}
}
},
"modules": {
"SimulatedTemperatureSensor": {
"version": "1.0",
"type": "docker",
"status": "running",
"restartPolicy": "always",
"settings": {
"image": "mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:1.5",
"createOptions": "{}"
}
}
}
}
},
"$edgeHub": {
"properties.desired": {
"schemaVersion": "1.1",
"routes": {
"upstream": "FROM /messages/* INTO $upstream"
},
"storeAndForwardConfiguration": {
"timeToLiveSecs": 7200
}
}
},
"SimulatedTemperatureSensor": {
"properties.desired": {
"SendData": true,
"SendInterval": 5
}
}
}
}
}
部署至裝置
您可以透過套用您運用模組資訊設定的部署資訊清單,將模組部署到裝置上。
將目錄變更為您儲存部署資訊清單的資料夾。 如果您使用其中一個 Visual Studio Code IoT Edge 範本,請使用 deployment.json
檔案,此檔案位在解決方案目錄的 config 資料夾中,而不是使用 deployment.template.json
檔案。
使用下列命令,將組態套用至 IoT Edge 裝置:
az iot edge set-modules --device-id [device id] --hub-name [hub name] --content [file path]
裝置識別碼參數會區分大小寫。 內容參數會指向您已儲存的部署資訊清單檔案。
在裝置上檢視模組
將模組部署至裝置後,您可以使用下列命令檢視所有模組:
在您的 IoT Edge 裝置上檢視模組:
az iot hub module-identity list --device-id [device id] --hub-name [hub name]
裝置識別碼參數會區分大小寫。
下一步
了解如何大規模部署和監視 IoT Edge 模組 (英文)