IoT 中樞裝置更新的組態檔
裝置更新代理程式會從裝置上的 du-config.json
檔案取得其設定資訊。 代理程式會讀取這些值,並將其報告給裝置更新服務:
- AzureDeviceUpdateCore:4.ClientMetadata:4.deviceProperties["manufacturer"]
- AzureDeviceUpdateCore:4.ClientMetadata:4.deviceProperties["model"]
- DeviceInformation.manufacturer
- DeviceInformation.model
- additionalProperties
- connectionData
- connectionType
檔案位置
在使用 Linux OS 的 IoT 裝置上安裝 Debian 代理程式時,請修改 /etc/adu/du-config.json
檔案以更新值。 對於 Yocto 建置系統,請在名為 adu
的分割區或磁碟中,建立名為 /adu/du-config.json
的 json 檔案。
欄位清單
名稱 | 描述 |
---|---|
schemaVersion | 對應目前組態檔格式版本的結構描述版本。 |
aduShellTrustedUsers | 可啟動 adu-shell 程式的使用者清單。 請注意,du-shell 是一種訊息代理程式,會以 'root' 身分執行多種更新動作。 裝置更新預設內容更新處理常式會叫用 du-shell,以執行需要進階使用者權限的工作。 舉例來說,apt-get install 或執行特殊權限指令碼都屬於需要此權限的工作。 |
製造商 | 由 AzureDeviceUpdateCore:4.ClientMetadata:4 介面回報,用來分類裝置以決定更新部署的目標。 |
機型 | 由 AzureDeviceUpdateCore:4.ClientMetadata:4 介面回報,用來分類裝置以決定更新部署的目標。 |
iotHubProtocol | 接受的值是 mqtt 或 mqtt/ws ,可變更用來與 IoT 中樞連線的通訊協定。 預設值是 'mqtt' |
compatPropertyNames | 這些屬性可用來檢查裝置的相容性,以將目標設定為更新部署。 針對要用於相容性的所有屬性,值必須只以小寫為單位 |
additionalProperties | 選擇性欄位。 您可以設定並用於相容性檢查的其他裝置報告屬性。 限制為五個裝置屬性。 這些屬性應該只有小寫。 |
connectionType | 接受的值為 string 或 AIS 。 將裝置手動連線至 IoT 中樞以供測試之用時,請使用 string 。 在生產案例中,使用 IoT 識別服務將裝置連線至 IoT 中樞時,請使用 AIS 。 如需詳細資訊,請參閱了解 IoT 識別服務設定。 |
connectionData | 如果 connectionType = "string",請在此處新增 IoT 裝置的裝置或模組連接字串。 如果 connectionType = "AIS",請將 connectionData 設定為空字串 ("connectionData": "" )。 |
製造商 | 由裝置更新代理程式回報為 DeviceInformation 介面的一部分。 |
機型 | 由裝置更新代理程式回報為 DeviceInformation 介面的一部分。 |
extensionsFolder | 選擇性欄位。 這會設定 ADU Extensions 資料夾的路徑。 默認路徑為 '/var/lib/adu/extensions' |
downloadsFolder | 選擇性欄位。 這會設定 ADU Downloads 資料夾的路徑。 默認路徑為 '/var/lib/adu/downloads' |
aduShellFilePath | 選擇性欄位。 這會設定ADU殼層的路徑。 默認路徑為 '/usr/lib/adu' |
downloadTimeoutInMinutes | 選擇性欄位。 這會設定更新承載的下載逾時,以分鐘為單位。 值為零表示使用預設值為8小時。 |
'Datafolder' 字段可用來設定 ADU 資料資料夾的路徑。健康情況管理檢查中的 CheckDataDir() 必須更新,才能指向組態檔中的值。 預設路徑為 『/var/lib/adu』,否則會使用 。
範例 "du-config.json" 檔案內容
{
"schemaVersion": "1.1",
"aduShellTrustedUsers": [
"adu",
"do"
],
"iotHubProtocol": "mqtt",
"compatPropertyNames":"manufacturer,model,location,environment" <The property values must be in lower case only>,
"manufacturer": <Place your device info manufacturer here>,
"model": <Place your device info model here>,
"agents": [
{
"name": <Place your agent name here>,
"runas": "adu",
"connectionSource": {
"connectionType": "string", //or “AIS”
"connectionData": <Place your Azure IoT device connection string here>
},
"manufacturer": <Place your device property manufacturer here>,
"model": <Place your device property model here>,
"additionalDeviceProperties": {
"location": "usa",
"environment": "development"
}
}
]
}