2017-10-11 387 views
0

我想將單個數據值發送到從AWS IoT收到的各個列到AWS DynamoDB。如何使用IoT規則將數據從AWS IoT發送到AWS DynamoDB v2

我的設備發送該有效載荷:

{ 
    "state": { 
    "desired": { 
     "DeviceId" : "Device101", 
     "DateTime" : now, 
     "Room1 Temperature" : m_t, 
     "Room2 Temperature": b_t 
     }, 
    "reported": { 
     "Item": { 
      "DeviceId" : "Device101", 
      "DateTime" : now, 
      "Room1 Temperature" : m_t, 
      "Room2 Temperature": b_t 
      } 
     } 
    } 
} 

我收到這個有效載荷的陰影更新我的影子鏈接在這裏:

$ AWS /事/陰影/更新

我已經創建了一個Sample DynamoDB表並將其與AWS IoT Rule鏈接,以便每當數據傳入上述主題時,都會由SQL Qu紅黴素:

SELECT * FROM

  • 該數據反映在我的影子更新
  • 此數據不被轉發到DynamoDB表 '$ AWS /事/陰影/更新'
  • 問題是什麼?!

任何幫助,將不勝感激。謝謝。

回答

0

首先,啓用Cloudwatch日誌應該有助於您調試此問題。

通常,這些類型的靜默失敗表示您沒有正確格式化數據以插入到DynamoDB中。

檢查事項:

  • 你的SELECT語句將無法正常工作,因爲它需要在要插入的內容來拉。在你的情況下,這可能是SELECT desired。*或SELECT reported.Item。*
  • 主分區鍵必須是您拉入的鍵之一或DynamoDB插入失敗。你的主分區密鑰是什麼?確保在SELECT語句的鍵列表中包含
  • 確保您的主分區鍵的數據類型與您傳入的類型匹配 - 例如,如果您的主分區鍵是DeviceId,則它應該是一個字符串類型(例如,不是整數)

CloudWatch日誌將提供更詳細的信息以幫助您。有關如何執行此操作的信息,請參閱http://docs.aws.amazon.com/iot/latest/developerguide/cloud-watch-logs.html

您也可以通過從左側導航中選擇設置(齒輪)並在日誌記錄下更新設置,從物聯網控制檯啓用它。

+0

好的,謝謝,我會研究它,讓你知道:) –