2017-10-11 1 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/일/그림자/업데이트

샘플 DynamoDB 테이블을 생성하고이를 AWS IoT Rule과 연결하여 데이터가 위에서 언급 한 항목으로 들어 오면 SQL Qu로 트리거됩니다. ERY :이 데이터는 DynamoDB의 테이블에 전달되지 않습니다 내 그림자 업데이트

  • 이 데이터에 반영됩니다

    • '$ AWS/일/그림자/업데이트'FROM

      SELECT *

    • 무엇이 문제입니까?!

    어떤 도움을 주시면 감사하겠습니다. 감사.

  • 답변

    0

    먼저 Cloudwatch 로그를 사용하도록 설정하면이 문제를 디버깅하는 데 도움이됩니다.

    일반적으로 이러한 유형의 자동 실패는 DynamoDB에 삽입 할 데이터의 형식이 잘못 지정되었음을 나타냅니다.

    확인 사항 :

    • 귀하의 SELECT 문이 작동하지 않습니다, 그것은 삽입 할 내용을 끌어 필요가있다. 이 경우 SELECT. * 또는 SELECT가보고됩니다. 항목. *
    • 주 파티션 키는 끌어 넣는 키 중 하나 여야합니다. 그렇지 않으면 DynamoDB 삽입이 실패합니다. 기본 파티션 키는 무엇입니까? SELECT 문에있는 키 목록에 해당 키가 있는지 확인하십시오.
    • 기본 파티션 키의 데이터 유형이 전달하는 유형과 일치하는지 확인하십시오. 예를 들어 기본 파티션 키가 DeviceId 인 경우 문자열이어야합니다 유형 (정수가 아님)

    CloudWatch 로그는 사용자를 지원하기 위해 훨씬 더 자세한 정보를 제공합니다. 이를 수행하는 방법에 대한 정보는 http://docs.aws.amazon.com/iot/latest/developerguide/cloud-watch-logs.html을 참조하십시오.

    또한 왼쪽 탐색 메뉴에서 설정 (이그)을 선택하고 로깅에서 설정을 업데이트하여 IoT 콘솔에서 설정을 활성화 할 수 있습니다.

    +0

    좋습니다. 감사합니다. 내가 조사하고 알려 드리겠습니다. :) –