裝置更新配置檔
適用於 IoT 中樞 代理程式的 Azure 裝置更新會使用裝置上du-config.json檔案的組態資訊。 代理程式會讀取檔案,並將下列值回報給裝置更新服務:
- AzureDeviceUpdateCore:4.ClientMetadata:4.deviceProperties["manufacturer"]
- AzureDeviceUpdateCore:4.ClientMetadata:4.deviceProperties["model"]
- DeviceInformation.manufacturer
- DeviceInformation.model
- additionalProperties
- connectionData
- connectionType
若要更新或建立 du-config.json 組態檔:
- 當您使用 Linux OS 在 IoT 裝置上安裝 Debian 代理程式時,請修改 /etc/adu/du-config.json 檔案以更新值。
- 若為 Yocto 建置系統,請在名為 /adu/du-config.json 的磁碟或磁盤中
adu
建立 JSON 檔案。
組態檔欄位和值
名稱 | 描述 |
---|---|
schemaVersion | 對應目前組態檔格式版本的架構版本。 |
aduShellTrustedUsers | 可以啟動adu-shell的使用者清單,這是執行各種更新動作做為 'root' 的訊息代理程式。 Device Update 預設內容更新處理程式會叫用 adu-shell 來執行需要進階用戶許可權的工作,例如 apt-get install 或執行特殊許可權腳本。 |
iotHubProtocol | 用來與 Azure IoT 中樞 連線的通訊協定。 接受的值為 mqtt 或 mqtt/ws 。 預設值為 'mqtt' 。 |
compatPropertyNames | 用來檢查裝置相容性以設定更新部署目標的屬性。 所有值都必須是小寫。 |
製造商 | 介面回報 AzureDeviceUpdateCore:4.ClientMetadata:4 的值,以分類裝置以鎖定更新部署。 |
機型 | 介面回報 AzureDeviceUpdateCore:4.ClientMetadata:4 的值,以分類裝置以鎖定更新部署。 |
additionalProperties | 選擇性,最多五個小寫的裝置報告屬性,以用於相容性檢查。 |
agents | 每個裝置更新代理程式的相關信息,包括 connectionSource 類型和數據。 |
NAME | 裝置更新代理程式名稱。 |
runas | 執行裝置更新代理程式的使用者身分識別。 |
connectionType | 用來將裝置連線到 IoT 中樞的連線類型。 接受的值為 string 或 AIS 。 用於 AIS 使用IoT身分識別服務進行連線的生產案例。 用於string 使用 連接字串 進行測試。 |
connectionData | 用來將裝置連線到 IoT 中樞 的數據。 如果 connectionType = "AIS" 為 ,請將 設定 connectionData 為空字串: "connectionData": "" 。 如果connectionType = "string" 為 ,請提供IoT裝置的裝置或模組 連接字串。 |
製造商 | 裝置更新代理程序回報的值,做為介面的 DeviceInformation 一部分。 |
機型 | 裝置更新代理程序回報的值,做為介面的 DeviceInformation 一部分。 |
additionalDeviceProperties | 選擇性,最多五個裝置屬性。 |
extensionsFolder | 選擇性設定 [裝置更新延伸 模組 ] 資料夾的路徑。 預設路徑為 '/var/lib/adu/extensions' 。 |
downloadsFolder | 選擇性設定 [裝置更新 下載 ] 資料夾的路徑。 預設路徑為 '/var/lib/adu/downloads' 。 |
dataFolder | 選擇性地設定 [裝置更新 ] 資料 資料夾的路徑。 預設路徑為 '/var/lib/adu' 。 如果您在組態檔中更新此值,則必須據以更新CheckDataDir() 健康情況管理檢查。 |
aduShellFilePath | 選擇性設定裝置更新殼層的路徑。 預設路徑為 '/usr/lib/adu' 。 |
downloadTimeoutInMinutes | 選擇性地設定更新下載逾時,以分鐘為單位。 值 0 表示預設值為8小時。 |
範例 「du-config.json」 檔案
{
"schemaVersion": "1.1",
"aduShellTrustedUsers": [
"adu",
"do"
],
"iotHubProtocol": "mqtt",
"compatPropertyNames":"manufacturer,model,location,environment",
"manufacturer": "contoso",
"model": "virtual-vacuum-2",
"agents": [
{
"name": "main",
"runas": "adu",
"connectionSource": {
"connectionType": "string",
"connectionData": "HostName=<hub_name>.azure-devices.net;DeviceId=<device_id>;SharedAccessKey=<device_key>"
},
"manufacturer": "contoso",
"model": "virtual-vacuum-2",
"additionalDeviceProperties": {
"location": "usa",
"environment": "development"
}
}
]
}