运行IOT主题的AWS运行Lambda,

时间:2018-10-23 13:46:43

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

我有一个AWS Lambda,它将数据发布到AWS IOT主题A,然后等待结果,该结果将发布到另一个主题B。

我想知道当事物将其发布到已经运行的lambda时如何从主题B获取此数据。

对于某个特定主题https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/iot-data.html#id4,我找不到与get_thing_shadow等效的任何内容

例如:

Lambda1->物联网主题A->事情

Lambda1等待

事物->物联网主题B

Lambda1从主题B中读取数据,并说DB和死亡。

我想知道如何做到这一点。

由于某些原因,我们无法再使用IOT Shadow。

当前体系结构:

Lambda1->需要物联网阴影->东西

Lambda1->等待5秒

Lambda1->读取报告的IOT影子->成功或失败

如果故障Lambda1->将所需的物联网重置为旧状态->存在

2 个答案:

答案 0 :(得分:0)

不可能配置IoT将新消息发送到“已运行” Lambda。它将始终触发Lambda函数的新调用。 IoT Shadow Update Failed消息中是否已经存在先前的状态?您能否仅在新调用中使用该数据来执行数据库更新或其他所需的操作?

答案 1 :(得分:0)

用于lambda的AWS开发工具包(例如python的boto3)不支持订阅主题。 它仅支持发布主题。

如果要订阅主题,则必须使用设备sdk (参考https://docs.aws.amazon.com/iot/latest/developerguide/iot-sdks.html

然后,您可以通过设备sdk在lambda中进行发布和订阅。

如果您不想使用设备sdk,则必须使用redis或dynamoDB,如下所示。

设备发布响应消息-> AWS IoT规则触发某些操作(例如,写入数据库)-> lambda轮询数据库。