次の方法で共有


Azure Device Update for IoT Hub インポート マニフェスト スキーマ

Azure Device Update for IoT Hub に更新プログラムをインポートするときは、更新プログラムに関する重要な情報を定義する、関連付けられた JSON インポート マニフェスト ファイルも送信します。 この記事では、JSON インポート マニフェスト ファイルの作成に使用されるスキーマについて説明します。

インポート マニフェストの概念とファイル構造の詳細については、「 Azure Device Update for IoT Hub インポート マニフェスト」を参照してください。 ファイルの作成方法については、「 Device Update for IoT Hub にインポートする更新プログラムを準備する」を参照してください。

スキーマ

インポートマニフェストの JSON スキーマは SchemaStore.org でホストされ、次のプロパティで構成されています。 その他のプロパティは許可されません。

プロパティ タイプ 説明 必須
$schema string JSON スキーマ リファレンス。 いいえ
にアップデートする updateId 一意の更新識別子。 イエス
説明 string オプションの更新プログラムの説明。 最大長は 512 文字です。 いいえ
互換性 compatibility この更新プログラムと互換性のあるデバイス プロパティ セットの一覧。 イエス
指示 instructions インストール手順を更新します。 イエス
ファイル file [0-10] 更新ペイロード ファイルの一覧。 すべてのファイルサイズの合計が 2 GB を超えることはできません。 すべての命令ステップが参照ステップである場合は、空または null にすることができます。 いいえ
manifestVersion の処理を行う string マニフェスト スキーマのバージョンをインポートします。 5.0 である必要があります。 イエス
作成日時 string マニフェストの作成日時を ISO 8601 形式 ( "2020-10-02T22:18:04.9446744Z" など) でインポートします。 イエス

オブジェクトの更新

updateID オブジェクトは、各更新の一意の識別子です。

プロパティ タイプ 説明 必須
供給者 string 更新プログラムを作成または直接担当するエンティティ。 プロバイダーには会社名を指定できます。
パターン: ^[a-zA-Z0-9.-]+$
最大長: 64 文字
イエス
名前 string 更新のクラスの識別子。 名前には、デバイス クラス名またはモデル名を指定できます。
パターン: ^[a-zA-Z0-9.-]+$
最大長: 64 文字
イエス
バージョン string 2 から 4 部構成のドット区切りの数値バージョン番号。 各部分は 0 から 2147483647 までの数値である必要があり、先行するゼロは削除されます。
パターン: ^\d+(?:\.\d+)+$
例: "1.0""2021.11.8"
イエス

その他のプロパティは許可されません。

例えば次が挙げられます。

{
  "updateId": {
    "provider": "Contoso",
    "name": "Toaster",
    "version": "1.0"
  }
}

互換性オブジェクト

compatibility オブジェクトは、この更新プログラムと互換性があるデバイスの 1 から 5 のプロパティを記述します。 各プロパティは、 string タイプの名前と値のペアです。 名前は 1 から 32 文字、値は 1 から 64 文字の長さにする必要があります。 互換性プロパティのまったく同じセットを、複数の更新プロバイダーと名前の組み合わせで使用することはできません。

例えば次が挙げられます。

{
  "compatibility": [
    {
      "manufacturer": "Contoso",
      "model": "Toaster"
    }
  ]
}

Instructions オブジェクト

instructions オブジェクトには、更新プログラムのインストール手順が表示されます。 instructions オブジェクトには、実行する steps のリストが含まれています。 その他のプロパティは許可されません。

ステップは、実行するコード、または他の更新へのポインターのいずれかです。 ステップ オブジェクトは、type 値が指定されていない場合、デフォルトで inline になります。

プロパティ タイプ 説明 必須
ステップ array[1-10] steps配列の各要素は、インライン ステップ オブジェクトまたは参照ステップ オブジェクトのいずれかである必要があります。 イエス

例えば次が挙げられます。

{
  "instructions": {
    "steps": [
      {
        "type": "inline",
        ...
      },
      {
        "type": "reference",
        ...
      }
    ]
  }
}

インラインステップオブジェクト

inlineステップオブジェクトは、コードの実行を実行するインストール指示ステップです。

プロパティ タイプ 説明 必須
タイプ string コード実行を実行する命令ステップの種類。 inlineである必要があります。 値が指定されていない場合、デフォルトは inline です。 いいえ
説明 string 省略可能な命令ステップの説明。 最大長: 64 文字。 いいえ
ハンドラー string この手順を実行できるデバイス上のハンドラーの ID。
パターン: ^\S+/\S+:\d{1,5}$
最小文字数: 5 文字
最大長: 32 文字
例: microsoft/script:1microsoft/swupdate:2microsoft/apt:1
イエス
ファイル string [1-10] エージェントがハンドラに渡す ファイル・オブジェクト として定義された更新ファイルの名前。 各要素の長さは 1 から 255 文字にする必要があります。 イエス
handlerPropertiesをする inlineStepHandlerProperties エージェントが引数としてハンドラーに渡す JSON オブジェクト。 いいえ

その他のプロパティは許可されません。

例えば次が挙げられます。

{
  "steps": [
    {
      "description": "pre-install script",
      "handler": "microsoft/script:1",
      "handlerProperties": {
        "arguments": "--pre-install"
      },
      "files": [
        "configure.sh"
      ]
    }
  ]
}

参照ステップオブジェクト

referenceステップオブジェクトは、別の更新プログラムをインストールするためのインストール手順です。

プロパティ タイプ 説明 必須
タイプ referenceStepType 別の更新プログラムをインストールする命令ステップの種類。 referenceである必要があります。 イエス
説明 stepDescription 省略可能な命令ステップの説明。 最大長: 64 文字。 いいえ
にアップデートする updateId 一意の更新識別子。 イエス

その他のプロパティは許可されません。

例えば次が挙げられます。

{
  "steps": [
    {
      "type": "reference",
      "updateId": {
        "provider": "Contoso",
        "name": "Toaster.HeatingElement",
        "version": "1.0"
      }
    }
  ]
}

Files オブジェクト

files オブジェクトは、バイナリ、ファームウェア、スクリプト ファイルなどの更新ペイロード ファイルであり、更新プログラム内で一意である必要があります。

プロパティ タイプ 説明 必須
ファイル名 string ペイロード ファイル名を更新します。 最大長: 255 文字 イエス
バイト単位のサイズ number ファイル サイズ (バイト数)。 最大サイズ: 2147483648 バイト イエス
ハッシュ fileHashes キーとしてアルゴリズム名を持つ Base64 でエンコードされたファイル ハッシュ。 少なくとも SHA-256 アルゴリズムを指定する必要があり、エージェントによってサポートされている場合は、追加のアルゴリズムを指定できます。 ハッシュの計算方法の詳細については、 Hashes オブジェクト を参照してください。 イエス
関連ファイル relatedFile[0-4] 1 つ以上のプライマリ ペイロード ファイルに関連するファイルのコレクション。 詳細については、 relatedFiles オブジェクトを参照してください。 いいえ
downloadHandlerの downloadHandler 関連ファイルの処理方法を指定します。 はい、 relatedFilesを使用している場合は可能です。 詳細については、「 downloadHandler オブジェクト」を参照してください。

その他のプロパティは許可されません。

例えば次が挙げられます。

{
  "files": [
    {  
      "fileName": "full-image-file-name",
      "sizeInBytes": 12345,
      "hashes": {...},
      "relatedFiles": [
        {
          "fileName": "delta-from-v1-file-name",
          "sizeInBytes": 1234,
          "hashes": {
            "SHA256": "delta-from-v1-file-hash"
          },
          "properties": {...}
        }  
      ],
      "downloadHandler": {
        "id": "microsoft/delta:1"
        }
    }
  ]
}

Hashes オブジェクト

hashes オブジェクトには、アルゴリズム名をキーとする base64 でエンコードされたファイル ハッシュが含まれています。 少なくとも SHA-256 アルゴリズムを指定する必要があり、エージェントでサポートされている場合は他のアルゴリズムを指定できます。 ハッシュを正しく計算する方法の例については、AduUpdate.psm1 スクリプトGet-AduFileHashes 関数を参照してください。

プロパティ タイプ 説明 必須
SHA256 string SHA-256 アルゴリズムを使用した Base64 でエンコードされたファイル ハッシュ値。 イエス

その他のプロパティは許可されます。

例えば次が挙げられます。

{
  "hashes": {
    "sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
  }
}

relatedFiles オブジェクト

relatedFiles オブジェクトには、1 つ以上のプライマリ ペイロード ファイルに関連するファイルのコレクションが含まれています。 詳細については、「 関連ファイル機能を使用して複数の更新ファイルを参照する」を参照してください。

プロパティ タイプ 説明 必須
ファイル名 string プライマリペイロードファイルに関連付けられている関連ファイルのリスト。 イエス
バイト単位のサイズ number ファイル サイズ (バイト数)。 最大サイズ: 2147483648 バイト。 イエス
ハッシュ fileHashes キーとしてアルゴリズム名を持つ Base64 でエンコードされたファイル ハッシュ。 詳細については、「 Hashes オブジェクト」を参照してください。 イエス
プロパティ relatedFilesProperties [0-5] 最大 5 つのキーと値のペア (キーは 64 文字の ASCII 文字に制限され、値は最大 256 文字の ASCII 文字を持つ JObject です)。 いいえ

その他のプロパティは許可されます。

例えば次が挙げられます。

"relatedFiles": [
  {
    "filename": "in1_in2_deltaupdate.dat",
    "sizeInBytes": 102910752,
    "hashes": {
      "sha256": "2MIldV8LkdKenjJasgTHuYi+apgtNQ9FeL2xsV3ikHY="
    },
    "properties": {
      "microsoft.sourceFileHashAlgorithm": "sha256",
      "microsoft.sourceFileHash": "YmFYwnEUddq2nZsBAn5v7gCRKdHx+TUntMz5tLwU+24="
    }
  }
],

downloadHandler オブジェクト

downloadHandler オブジェクトは、関連ファイルの処理方法を指定します。

プロパティ タイプ 説明 必須
ID string downloadHandlerの識別子。 ASCII 文字は 64 文字までです。 はい (使用する場合) relatedFiles

その他のプロパティは許可されません。

例えば次が挙げられます。

"downloadHandler": {
  "id": "microsoft/delta:1"
}