Device Update の構成ファイル

Azure Device Update for IoT Hub エージェントでは、デバイス上の du-config.json ファイルからの構成情報が使用されます。 エージェントで、このファイルが読み取られ、以下の値が Device Update サービスに報告されます。

  • AzureDeviceUpdateCore:4.ClientMetadata:4.deviceProperties["manufacturer"]
  • AzureDeviceUpdateCore:4.ClientMetadata:4.deviceProperties["model"]
  • DeviceInformation.manufacturer
  • DeviceInformation.model
  • additionalProperties
  • connectionData
  • 接続タイプ

du-config.json 構成ファイルを更新または作成するには:

  • Linux OS を搭載した IoT デバイスに Debian エージェントをインストールする場合は、/etc/adu/du-config.json ファイルを変更して値を更新します。
  • Yocto ビルド システムの場合は、adu というパーティションまたはディスクで、/adu/du-config.json という名前の JSON ファイルを作成します。

構成ファイルのフィールドと値

名前 説明
SchemaVersion 現在の構成ファイル形式のバージョンをマップするスキーマ バージョン。
aduShellTrustedUsers adu-shell を起動できるユーザーの一覧。adu-shell は、さまざまな更新アクションを 'root' として実行するブローカー プログラムです。 Device Update の既定のコンテンツ更新ハンドラーは adu-shell を呼び出して、apt-get install や特権スクリプトの実行など、スーパー ユーザー特権を必要とするタスクを実行します。
iotHubProtocol Azure IoT Hub との接続に使用されるプロトコル。 指定できる値は mqtt または mqtt/ws です。 既定値は 'mqtt' です。
compatPropertyNames 更新プログラムの展開の対象となるデバイスの互換性を確認するために使用されるプロパティ。 すべての値を小文字にする必要があります。
製造元 更新プログラムの展開の対象となるデバイスを分類するために、AzureDeviceUpdateCore:4.ClientMetadata:4 インターフェイスによって報告される値。
モデル 更新プログラムの展開の対象となるデバイスを分類するために、AzureDeviceUpdateCore:4.ClientMetadata:4 インターフェイスによって報告される値。
additionalProperties オプション。互換性チェックに使用する、デバイスによって報告される小文字のみのプロパティを追加で 5 つまで指定できます。
エージェント connectionSource の種類やデータなど、各 Device Update エージェントに関する情報。
名前 Device Update エージェントの名前。
RunAs Device Update エージェントを実行するユーザー ID。
接続タイプ デバイスをIoT Hubに接続するために使用する接続の種類。 使用できる値は、 AISstring、または x509です。 IoT Identity Service を使用する場合は、 AIS を使用します。 接続文字列 ベースの認証には、string を使用します。 証明書ベースの認証には x509 を使用します。
connectionData デバイスをIoT Hubに接続するために使用されるデータ。 形式は connectionTypeによって異なります。

AIS場合は、空の文字列 ( "connectionData": "") に設定します。
stringの場合は、IoT デバイスのデバイスまたはモジュールの接続文字列を指定します。
x509の場合は、x509=true (例: "HostName=<hub>.azure-devices.net;DeviceId=<device>;x509=true") を含む接続文字列を指定します。
connectionX509CertFilePath 認証に使用される X.509 クライアント証明書へのファイル パス。 このフィールドは、 connectionTypex509されるときに必要です。
connectionX509PrivateKeyFilePath X.509 証明書に関連付けられている秘密キーへのファイル パス。 このフィールドは、 connectionTypex509されるときに必要です。
接続X509 CA証明書ファイルパス IoT Hub サーバー証明書の検証に使用する証明機関 (CA) 証明書のファイル パス。 このフィールドは、 connectionTypex509されるときに必要です。
製造元 Device Update エージェントによって DeviceInformation インターフェイスの一部として報告される値。
モデル Device Update エージェントによって DeviceInformation インターフェイスの一部として報告される値。
追加のデバイス プロパティ オプション。最大 5 つの追加のデバイス プロパティ。
拡張機能フォルダー オプション。Device Update の "拡張機能" フォルダーのパスを設定します。 既定のパスは '/var/lib/adu/extensions' です。
ダウンロード フォルダー オプション。Device Update の "ダウンロード" フォルダーのパスを設定します。 既定のパスは '/var/lib/adu/downloads' です。
データ フォルダー オプション。Device Update の "データ" フォルダーのパスを設定します。 既定のパスは '/var/lib/adu' です。 構成ファイル内でこの値を更新する場合は、CheckDataDir()もそれに応じて更新する必要があります。
aduShellFilePath オプション。Device Update シェルのパスを設定します。 既定のパスは '/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"
      }
    }
  ]
}