ここでは、デバイスシャドウのJSON形式について説明します。
次のコードスニペットは、デバイスシャドウのサンプルJSONファイルを示しています。
{
"state": {
"desired": {
"color": "RED" 、
"sequence": [
"レッド" 、
"グリーン" 、
"ブルー"
]
},
"reported": {
"カラー": "グリーン"
}
},
"metadata": {
"desired": {
"color": {
"timestamp": 1469564492
},
"sequence": {
"timestamp": 1469564492
}
},
"reported": {
"color": {
"timestamp": 1469564492
}
}
},
"timestamp": 1469564492、
"version": 1
} JSONファイルのプロパティテーブルには、サンプルJSONファイルのプロパティが記述されています。
| プロパティ | 説明 |
| 望ましい | デバイスの期待される (desired) 状態。 デバイスシャドウのJSONファイルには、目的のステータスを指定した場合にのみ、目的のプロパティが含まれます。 アプリケーションは、デバイスに接続する必要なしに、デバイスの所望のプロパティを直接書き込むことができる。 |
| 報告済み | デバイスによって報告されるステータス。 デバイスは、報告されたプロパティを書き込み、最新のステータスを報告できます。 アプリケーションは、このプロパティを読み取ることによってデバイスのステータスを取得できます。 デバイスシャドウのJSONファイルには、報告されたプロパティが含まれていない場合があります。 |
| メタデータ | デバイスのステータスに関するメタデータ情報。JSONファイルの更新に基づいて自動的に更新されます。 メタデータ情報は、正確な更新時間を提供するために各プロパティのタイムスタンプを含む。 各タイムスタンプは、1970年1月1日00:00:00 UTCから経過した秒数です。 |
| timestamp | JSONファイルが更新された最新の時刻。 |
| バージョン | JSONファイルのバージョン番号。 デバイスシャドウのバージョン更新を要求すると、要求されたバージョンが現在のバージョンよりも後であるかどうかがデバイスシャドウで確認されます。 要求されたバージョンが現在のバージョンよりも新しい場合、デバイスシャドウが更新され、versionプロパティも更新されます。 それ以外の場合、デバイスシャドウは要求を拒否します。 更新中に、versionプロパティの値が増分され、更新されるファイルが常に最新バージョンになるようにします。 versionプロパティはLONG型です。 パラメーターのオーバーフローを防ぐには、 |
説明
配列は、デバイスシャドウのJSONファイルでサポートされています。 配列を更新するときは、配列の一部のみではなく、配列全体を更新する必要があります。
次の例は、配列を更新する方法を示しています。
- 初期状態:
{ "reported" : { "colors" : ["RED", "GREEN", "BLUE" ] } } - 更新:
{ "reported" : { "colors" : ["RED"] } } - 最終状態:
{ "reported" : { "colors" : ["RED"] } }