本文檔介紹設備影子的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屬性描述,如下表表 1所示。
屬性 | 描述 |
---|---|
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" ] } }