IoT Hub 用の Device Update に更新プログラムをインポートしたい場合は、まず 概念 を確認し、ハウツーガイド と をレビューしてください。 インポート マニフェスト スキーマの詳細、または API のアクセス許可に関する情報に関心がある場合は、以下を参照してください。
インポート マニフェスト JSON スキーマは、 SchemaStore.org でホストされます。
スキーマ
プロパティ | タイプ | 説明 | 必須 |
---|---|---|---|
$schema | string |
JSON スキーマ リファレンス。 | いいえ |
を にアップデートする | updateId |
一意の更新識別子。 | イエス |
説明 | string |
オプションの更新プログラムの説明。 最大長: 512 文字 |
いいえ |
互換性 | compatibility |
この更新プログラムと互換性のあるデバイス プロパティ セットの一覧。 | イエス |
指示 | instructions |
インストール手順を更新します。 | イエス |
ファイル |
file
[0-10]
|
更新ペイロード ファイルの一覧。 すべてのファイル サイズの合計が 2 GB を超えない場合があります。 すべての命令ステップが参照ステップである場合は、空または null にすることができます。 | いいえ |
manifestVersion の処理を行う | string |
マニフェスト スキーマのバージョンをインポートします。 4.0 である必要があります。 | イエス |
作成日時 | string |
日付 & 時刻インポート マニフェストが ISO 8601 形式で作成されました。 例: "2020-10-02T22:18:04.9446744Z" |
イエス |
追加のプロパティは使用できません。
updateId オブジェクト
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"
}
}
互換性オブジェクト
互換性オブジェクトは、この更新プログラムと互換性のあるデバイスのプロパティを記述します。
-
型:
object
-
最小プロパティ:
1
-
最大プロパティ:
5
各プロパティは、文字列型の名前と値のペアです。
-
プロパティ名の最小長:
1
-
プロパティ名の最大長:
32
-
プロパティ値の最小長:
1
-
プロパティ値の最大長:
64
同じ互換性プロパティのセットを、複数の更新プロバイダーと名前の組み合わせで使用することはできません。
次に例を示します。
{
"compatibility": [
{
"deviceManufacturer": "Contoso",
"deviceModel": "Toaster"
}
]
}
説明オブジェクト
instructions オブジェクトは、更新プログラムのインストール手順を提供します。 instructions オブジェクトには、実行するステップの一覧が含まれています。 ステップには、実行するコードまたは別の更新プログラムへのポインターを指定できます。
プロパティ | タイプ | 説明 | 必須 |
---|---|---|---|
ステップス | array[1-10] |
配列内の各要素は、 inlineStep オブジェクト または referenceStep オブジェクトである必要があります。 | イエス |
追加のプロパティは使用できません。
次に例を示します。
{
"instructions": {
"steps": [
{
"type": "inline",
...
},
{
"type": "reference",
...
}
]
}
}
inlineStep オブジェクト
インライン ステップ オブジェクトは、コード実行を実行するインストール命令ステップです。
プロパティ | タイプ | 説明 | 必須 |
---|---|---|---|
型 | string |
コード実行を実行する命令ステップの種類。
inline である必要があります。値が指定されていない場合、デフォルトは inline です。 |
いいえ |
説明 | string |
省略可能な命令ステップの説明。 最大長: 64 文字 |
いいえ |
ハンドラー | string |
この手順を実行できるデバイス上のハンドラーの ID。 パターン: ^\S+/\S+:\d{1,5}$ 最小長: 5 文字 最大長: 32 文字 例: microsoft/script:1 、microsoft/swupdate:1 、microsoft/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"
]
}
]
}
referenceStep オブジェクト
参照ステップオブジェクト は、別の更新プログラムをインストールするためのインストール指示ステップです。
プロパティ | タイプ | 説明 | 必須 |
---|---|---|---|
型 | referenceStepType |
別の更新プログラムをインストールする命令ステップの種類。
reference である必要があります。 |
イエス |
説明 | stepDescription |
省略可能な命令ステップの説明。 最大長: 64 文字 |
いいえ |
を にアップデートする | updateId |
一意の更新識別子。 | イエス |
追加のプロパティは使用できません。
次に例を示します。
{
"steps": [
{
"type": "reference",
"updateId": {
"provider": "Contoso",
"name": "Toaster.HeatingElement",
"version": "1.0"
}
}
]
}
ファイルオブジェクト
オブジェクト ファイルは、バイナリ、ファームウェア、スクリプトなどの更新ペイロード ファイルです。各ファイル オブジェクトは、更新プログラム内で一意である必要があります。
プロパティ | タイプ | 説明 | 必須 |
---|---|---|---|
ファイル名 | string |
ペイロード ファイル名を更新します。 最大長: 255 文字 |
イエス |
バイト単位のサイズ | number |
ファイル サイズ (バイト数)。 最大サイズ: 2147483648 バイト |
イエス |
ハッシュ | fileHashes |
キーとしてアルゴリズム名を持つ Base64 でエンコードされたファイル ハッシュ。 少なくとも SHA-256 アルゴリズムを指定する必要があり、エージェントでサポートされている場合は追加のアルゴリズムを指定できます。 ハッシュの計算方法の詳細については、以下を参照してください。 | イエス |
追加のプロパティは使用できません。
次に例を示します。
{
"files": [
{
"filename": "configure.sh",
"sizeInBytes": 7558,
"hashes": {...}
}
]
}
fileHashes オブジェクト
Base64 でエンコードされたファイル ハッシュ。アルゴリズム名をキーとして使用します。 少なくとも SHA-256 アルゴリズムを指定する必要があり、エージェントでサポートされている場合は他のアルゴリズムを指定できます。 ハッシュを正しく計算する方法の例については、 AduUpdate.psm1 スクリプトの Get-AduFileHashes 関数を参照してください。
プロパティ | タイプ | 説明 | 必須 |
---|---|---|---|
sha256 | string |
SHA-256 アルゴリズムを使用した Base64 でエンコードされたファイル ハッシュ値。 | イエス |
追加のプロパティを使用できます。
次に例を示します。
{
"hashes": {
"sha256": "/CD7Sn6fiknWa3NgcFjGlJ+ccA81s1QAXX4oo5GHiFA="
}
}
次のステップ
インポートの概念の詳細を確認します。
準備ができたら、 インポート How-To ガイドを試してみてください。このガイドでは、インポート プロセスの手順を順を追って説明します。