Device Update for IoT Hub への更新プログラムのインポート: スキーマおよびその他の情報

Device Update for IoT Hub に更新プログラムにインポートする場合は、まず、概念攻略ガイド を必ず確認しておいてください。 インポート マニフェスト スキーマ自体の詳細に関心がある場合は、以下をご覧ください。

インポート マニフェスト JSON スキーマは、SchemaStore.org でホストされています。

スキーマ

プロパティ タイプ 内容 必須
$schema string JSON スキーマ参照。 いいえ
updateId updateId 一意の更新プログラム識別子。 はい
description string 省略可能な更新プログラムの説明。

最大文字数: 512 字
いいえ
compatibility compatibility この更新プログラムと互換性のあるデバイス プロパティ セットの一覧。 はい
instructions instructions 更新プログラムのインストール手順。 はい
files file [0-10] 更新プログラムのペイロード ファイルの一覧。 すべてのファイル サイズの合計が 2 GB を超えてはいけません。 すべての命令ステップが参照ステップである場合は、空または null を指定できます。 いいえ
manifestVersion string マニフェスト スキーマのバージョンをインポートします。 5.0 である必要があります。 はい
createdDateTime string インポート マニフェストが作成された ISO 8601 形式の日時。

例: "2020-10-02T22:18:04.9446744Z"
はい

追加のプロパティは許可されません。

updateId オブジェクト

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

プロパティ タイプ 内容 必須
プロバイダー string 更新プログラムを作成または直接担当するエンティティ。 会社名を指定できます。

パターン: ^[a-zA-Z0-9.-]+$
最大文字数: 64 字
はい
name string 更新プログラムのクラスの識別子。 デバイス クラスまたはモデルの名前とすることができます。

パターン: ^[a-zA-Z0-9.-]+$
最大文字数: 64 字
はい
version string 2 つから 4 つの部分からなるドット区切りの数値バージョン番号。 各部分は 0 から 2147483647 の間の数値である必要があり、先頭のゼロは削除されます。

パターン: ^\d+(?:\.\d+)+$
例: "1.0""2021.11.8"
はい

追加のプロパティは許可されません。

次に例を示します。

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

compatibility オブジェクト

compatibility オブジェクトは、この更新プログラムと互換性のあるデバイスのプロパティを記述します。

  • : object
  • 最小のプロパティ: 1
  • 最大のプロパティ: 5

各プロパティは、string 型の名前と値のペアです。

  • プロパティ名の最小長: 1
  • プロパティ名の最大長: 32
  • プロパティ値の最小長: 1
  • プロパティ値の最大長: 64

互換性プロパティの同一のセットは、複数のプロバイダーと名前の組み合わせで使用できません。

次に例を示します。

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

instructions オブジェクト

instructions オブジェクトは、更新プログラムのインストール手順を提供します。 instructions オブジェクトには、実行するステップのリストが含まれています。 ステップには、実行するコードまたは別の更新プログラムへのポインターを指定できます。

プロパティ タイプ 内容 必須
steps array[1-10] 配列内の各要素は、inlineStep オブジェクトまたは referenceStep オブジェクトである必要があります。 はい

追加のプロパティは許可されません。

次に例を示します。

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

inlineStep オブジェクト

inline step オブジェクトは、コード実行を行うインストール命令ステップです。

プロパティ タイプ 内容 必須
type string コード実行を行う命令ステップの種類。 inlineである必要があります。

値が指定されていない場合は既定の inline になります。
いいえ
description string 省略可能な命令ステップの説明。

最大文字数: 64 字
いいえ
handler string このステップを実行できるデバイス上のハンドラーの ID。

パターン: ^\S+/\S+:\d{1,5}$
最大文字数: 5 字
最大文字数: 32 字
例: microsoft/script:1microsoft/swupdate:1microsoft/apt:1
はい
files string [1-10] エージェントがハンドラーに渡す file オブジェクトとして定義された更新ファイルの名前。 配列内の各要素は 1 から 255 までの長さである必要があります。 はい
handlerProperties inlineStepHandlerProperties エージェントがハンドラーに引数として渡す JSON オブジェクト。 いいえ

追加のプロパティは許可されません。

次に例を示します。

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

referenceStep オブジェクト

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

プロパティ タイプ 内容 必須
type referenceStepType 別の更新プログラムをインストールする命令ステップの種類。 referenceである必要があります。 はい
description stepDescription 省略可能な命令ステップの説明。

最大文字数: 64 字
いいえ
updateId updateId 一意の更新プログラム識別子。 はい

追加のプロパティは許可されません。

次に例を示します。

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

file オブジェクト

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

プロパティ タイプ 内容 必須
ファイル名 string 更新プログラムのペイロード ファイル名。

最大文字数: 255 字
はい
sizeInBytes number ファイルサイズ (バイト数)。

最大サイズ: 2147483648 バイト
はい
hashes fileHashes アルゴリズム名をキーとして使用する Base64 でエンコードされたファイル ハッシュ。 少なくとも SHA-256 アルゴリズムを指定する必要があり、エージェントでサポートされている場合は追加のアルゴリズムを指定できます。 ハッシュの計算方法の詳細については、以下を参照してください。 はい
relatedFiles relatedFile[0-4] 1 つ以上のプライマリ ペイロード ファイルに関連するファイルのコレクション。 いいえ
downloadHandler downloadHandler 関連ファイルの処理方法を指定します。 はい (relatedFiles を使用する場合のみ)

追加のプロパティは許可されません。

次に例を示します。

{
  "files": [
    {
      "filename": "configure.sh",
      "sizeInBytes": 7558,
      "hashes": {...}
    }
  ]
}

fileHashes オブジェクト

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

プロパティ タイプ 内容 必須
sha256 string SHA-256 アルゴリズムを使用する Base64 でエンコードされたファイル ハッシュ値。 はい

追加のプロパティを使用できます。

次に例を示します。

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

relatedFiles オブジェクト

1 つ以上のプライマリ ペイロード ファイルに関連するファイルのコレクション。

プロパティ タイプ 内容 必須
ファイル名 string プライマリ ペイロード ファイルに関連付けられている関連ファイルの一覧。 はい
sizeInBytes number ファイルサイズ (バイト数)。

最大サイズ: 2147483648 バイト
はい
hashes fileHashes アルゴリズム名をキーとして使用する Base64 でエンコードされたファイル ハッシュ。 少なくとも SHA-256 アルゴリズムを指定する必要があり、エージェントでサポートされている場合は追加のアルゴリズムを指定できます。 ハッシュの計算方法の詳細については、以下を参照してください。 はい
properties relatedFilesProperties [0-5] キーと値の 5 ペアの制限。キーは 64 の ASCII 文字に制限され、値は JObject (最大 256 ASCII 文字) です。 いいえ

追加のプロパティを使用できます。

次に例を示します。

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

詳細については、「関連ファイル機能を使用して複数の更新ファイルを参照する」を参照してください。

downloadHandler オブジェクト

関連ファイルの処理方法を指定します。

プロパティ タイプ 内容 必須
id string downloadHandler の ID。 64 の ASCII 文字の制限。 はい

追加のプロパティは許可されません。

次に例を示します。

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

次のステップ

インポートの概念について詳しく説明します。

準備ができたら、インポート プロセスの詳しい手順が示されているインポート攻略ガイドに進んでください。