AWS iot dynamodb规则$ {value} NoSuchElementException

时间:2017-11-13 12:41:45

标签: amazon-web-services amazon-dynamodb aws-iot

我正在尝试设置AWS IOT规则,以便在没有lambda帮助的情况下将数据发送到DynamoDB。

我的规则查询语句是:A

我的数据在AWS IOT中很好,因为我已成功使用lambda检索它。但是,即使按照the developer guide创建规则,为了将信息传递给Dynamo,通过设置$ {topic}和$ {timestamp}的2表单字段,它应该可以工作,我什么也得不到在DynamoDB中,我可以在Cloudwatch中找到以下异常:

SELECT *, topic() AS topic, timestamp() AS timestamp FROM '+/#'

HashKeyValue和RangeKeyValue似乎是空的。为什么?

我还在AWS论坛上发布了这个问题:https://forums.aws.amazon.com/thread.jspa?threadID=267987

1 个答案:

答案 0 :(得分:0)

假设您的devide发送此有效负载:

mess={"reported": 
{"light": "blue","Temperature": int(temp_data)),
"timestamp": str(pd.to_datetime(time.time()))}}

args.message =乱七八糟

您应该查询为:

SELECT message.reported.* FROM '#'

然后,将DynamoDB哈希键值设置为$ {MessageID()}

你会得到:

MessageID ||数据

1527010174562    { "light" : { "S" : "blue" }, "Temperature" : { "N" : "41" }, "timestamp" : { "S" : "1970-01-01 00:00:01.527010174" }}

然后,您可以使用Lambda轻松提取值,并通过Data Pipeline或Firehose发送到S3以创建数据流。