本文檔介紹裝置影子的JSON格式表達方法。
裝置影子JSON文檔樣本:
{
"state": {
"desired": {
"color": "RED",
"sequence": [
"RED",
"GREEN",
"BLUE"
]
},
"reported": {
"color": "GREEN"
}
},
"metadata": {
"desired": {
"color": {
"timestamp": 1469564492
},
"sequence": {
"timestamp": 1469564492
}
},
"reported": {
"color": {
"timestamp": 1469564492
}
}
},
"timestamp": 1469564492,
"version": 1
}
JSON屬性描述,如下表JSON屬性說明所示。
| 屬性 | 描述 |
| desired | 裝置的預期狀態。僅當裝置影子文檔具有預期狀態時,才包含desired部分。
應用程式向desired部分寫入資料,更新事物的狀態,而無需直接連接到該裝置。 |
| reported | 裝置的報告狀態。裝置可以在reported部分寫入資料,報告其最新狀態。
應用程式可以通過讀取該參數值,擷取裝置的狀態。 JSON文檔中也可以不包含reported部分,沒有reported部分的文檔同樣為有效影子JSON文檔。 |
| metadata | 當使用者更新裝置狀態文檔後,裝置影子服務會自動更新metadata的值。
裝置狀態的中繼資料的資訊包含以 Epoch 時間表示的每個屬性的時間戳記,用來擷取準確的更新時間。 |
| timestamp | 影子文檔的最新更新時間。 |
| version | 使用者主動更新版本號碼時,裝置影子會檢查請求中的version值是否大於目前的版本號。
如果大於目前的版本號,則更新裝置影子,並將version值更新到請求的版本中,反之則會拒絕更新裝置影子。 該參數更新後,版本號碼會遞增,用於確保正在更新的文檔為最新版本。 version參數為long型。為防止參數溢出,您可以手動傳入 |
說明
裝置影子支援數組。更新數組時必須全量更新,不能只更新數組的某一部分。
更新數組資料樣本:
- 初始狀態:
{ "reported" : { "colors" : [ "RED", "GREEN", "BLUE" ] } } - 更新:
{ "reported" : { "colors" : [ "RED" ] } } - 最終狀態:
{ "reported" : { "colors" : [ "RED" ] } }