2017-10-11 16 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 Tableを作成し、それをAWS IoT Ruleにリンクしました。これにより、上記のトピックにデータが入ってくるたびに、SQL QuでトリガーされるようになりましたERY:このデータはDynamoDBのテーブルに転送されていない私の影更新

  • このデータに反映され

    • '$ AWS /もの/影/更新' から

      SELECT *

    • 問題は何ですか?

    助けていただければ幸いです。ありがとう。

  • 答えて

    0

    まず、Cloudwatchログを有効にすると、この問題のデバッグに役立ちます。

    一般的に、これらのタイプのサイレントエラーは、データを適切にフォーマットしてDynamoDBに挿入できないことを示します。チェックする

    もの:

    • それは、挿入したいコンテンツにプルする必要があるとして、あなたのSELECTステートメントは、動作しません。あなたの場合、これはSELECTが必要です。*またはSELECTが報告されます.Item。*
    • プライマリパーティションキーは、引き込むキーの1つでなければなりません。そうしないと、DynamoDBの挿入が失敗します。プライマリパーティションキーは何ですか? SELECTステートメントのキーのリストにそのキーがあることを確認してください
    • プライマリパーティションキーのデータタイプが、渡しているタイプと一致していることを確認してください。たとえば、プライマリパーティションキーがDeviceIdの場合、タイプ(整数などではありません)

    CloudWatchログは、より詳細な情報を提供します。これを行う方法については、http://docs.aws.amazon.com/iot/latest/developerguide/cloud-watch-logs.htmlを参照してください。

    また、左側のナビゲーションから[設定](コグ)を選択し、[ロギング]の設定を更新することで、IoTコンソールから有効にすることもできます。

    +0

    よろしくお願いいたします。私はそれを調べてお知らせします:) –

    関連する問題