Device Update configuration file
The Azure Device Update for IoT Hub agent uses configuration information from a du-config.json file on the device. The agent reads the file and reports the following values to the Device Update service:
- AzureDeviceUpdateCore:4.ClientMetadata:4.deviceProperties["manufacturer"]
- AzureDeviceUpdateCore:4.ClientMetadata:4.deviceProperties["model"]
- DeviceInformation.manufacturer
- DeviceInformation.model
- additionalProperties
- connectionData
- connectionType
To update or create the du-config.json configuration file:
- When you install the Debian agent on an IoT device with a Linux OS, modify the /etc/adu/du-config.json file to update the values.
- For a Yocto build system, create a JSON file in the
adu
partition or disk called /adu/du-config.json.
Configuration file fields and values
Name | Description |
---|---|
SchemaVersion | Schema version that maps the current configuration file format version. |
aduShellTrustedUsers | List of users that can launch adu-shell, a broker program that performs various update actions as 'root' . The Device Update default content update handlers invoke adu-shell to do tasks that require super user privilege, such as apt-get install or executing a privileged script. |
iotHubProtocol | Protocol used to connect with Azure IoT Hub. Accepted values are mqtt or mqtt/ws . Default value is 'mqtt' . |
compatPropertyNames | Properties used to check for device compatibility to target the update deployment. All values must be lowercase. |
manufacturer | Value reported by the AzureDeviceUpdateCore:4.ClientMetadata:4 interface to classify the device for targeting the update deployment. |
model | Value reported by the AzureDeviceUpdateCore:4.ClientMetadata:4 interface to classify the device for targeting the update deployment. |
additionalProperties | Optional, up to five more lowercase-only device-reported properties to use for compatibility checking. |
agents | Information about each Device Update agent, including connectionSource type and data. |
name | Device Update agent name. |
runas | User identity to run the Device Update agent under. |
connectionType | Connection type to use for connecting the device to IoT Hub. Accepted values are string or AIS . Use AIS for production scenarios that use the IoT Identity Service to connect. Use string to connect using a connection string for testing purposes. |
connectionData | Data to use for connecting the device to IoT Hub. If connectionType = "AIS" , set the connectionData to an empty string: "connectionData": "" . If connectionType = "string" , provide your IoT device's device or module connection string. |
manufacturer | Value reported by the Device Update agent as part of the DeviceInformation interface. |
model | Value reported by the Device Update agent as part of the DeviceInformation interface. |
additionalDeviceProperties | Optional, up to five more device properties. |
extensionsFolder | Optional, sets the path for the Device Update extensions folder. Default path is '/var/lib/adu/extensions' . |
downloadsFolder | Optional, sets the path for the Device Update downloads folder. Default path is '/var/lib/adu/downloads' . |
dataFolder | Optional, sets the path for the Device Update data folder. Default path is '/var/lib/adu' . If you update this value in the configuration file, you must update CheckDataDir() in the health management check accordingly. |
aduShellFilePath | Optional, sets the path for the Device Update shell. Default path is '/usr/lib/adu' . |
downloadTimeoutInMinutes | Optional, sets the update download timeout in minutes. Value 0 means the default of 8 hours. |
Example "du-config.json" file
{
"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"
}
}
]
}