2017-10-11 9 views
0

Je souhaite envoyer des valeurs de données individuelles aux colonnes respectives reçues d'AWS IoT vers AWS DynamoDB.Comment envoyer des données d'AWS IoT à AWS DynamoDB v2 à l'aide des règles IoT

Mes appareils envoient cette charge utile:

{ 
    "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 
      } 
     } 
    } 
} 

Je reçois cette charge comme une mise à jour d'ombre sur mon ombre Lien ici:

$ aws/choses/shadow/mise à jour

J'ai créé un exemple de table DynamoDB et l'ai lié avec la règle AWS IoT, de sorte que chaque fois que des données entrent dans le sujet mentionné ci-dessus, elles seront déclenchées par le SQL Qu rès:

SELECT * FROM '$ aws/choses/shadow/mise à jour'

  • Cette données se reflète dans mon ombre Mise à jour
  • données ne sont pas transmises à la table DynamoDB
  • Quel est le problème ?!

Toute aide serait appréciée. Merci.

Répondre

0

Tout d'abord, l'activation de Cloudwatch Logs devrait vous aider à résoudre ce problème.

Généralement, ces types de défaillances silencieuses indiquent que vous n'avez pas correctement formaté vos données pour les insérer dans DynamoDB.

choses à vérifier:

  • Votre instruction SELECT ne fonctionnera pas, car il a besoin de tirer dans le contenu que vous souhaitez insérer. Dans votre cas, il s'agira soit de SELECT désiré. * Soit de SELECT report.Item. *
  • La clé de partition principale doit être l'une des clés que vous insérez ou votre insertion DynamoDB échoue. Quelle est votre clé de partition principale? Assurez-vous que vous avez cela dans votre liste de clés dans votre instruction SELECT
  • Assurez-vous que votre type de données pour la clé de partition principale correspond au type que vous transmettez, par exemple si votre clé de partition principale était DeviceId, il doit s'agir d'une chaîne type (pas, par exemple, un entier)

Les journaux CloudWatch fournissent des informations beaucoup plus détaillées pour vous aider. Voir http://docs.aws.amazon.com/iot/latest/developerguide/cloud-watch-logs.html pour plus d'informations sur la façon de procéder.

Vous pouvez également l'activer depuis la console IoT en sélectionnant Settings (le cog) dans la navigation de gauche et en mettant à jour les paramètres sous Logging.

+0

Okay Merci je vais regarder dans et vous le faire savoir :) –