数据从Lambda发送到AWS IoT核心的环境如何?

时间:2020-10-21 12:29:33

标签: aws-iot greengrass aws-iot-core aws-iot-greengrass

我们可以使用lambda函数连接到AWS IoT Greengrass核心并发布消息。对于要接收lambda发布的味精的设备,需要满足两个条件:1)需要在greengrass中订阅lambda(具有适当的主题),并且2)订户的代码对此进行了.subscribe话题。 Lambda示例:

import greengrasssdk
import json

# Greengrass client to publish to
client = greengrasssdk.client('iot-data')

# Executed on every messages received from the subscription
def lambda_handler(event, context):
  
  client.publish(topic='lab/greengrass/telemetry', payload=json.dumps(event))
  
  return

此处,消息是在Lambda而不是设备的上下文中发布的。同样,如果我必须将msg从lambda发送到AWS IoT Core,则msg不会从lambda作为设备上下文,而是lambda本身。

但是,我们也可以通过Lambda将表示事物的消息发布到AWS IoT Core或其他设备,为此,我们需要传递凭证(事物凭证)以将Lambda标识为设备(事物)。< / p>

我明白这个意思了吗

1 个答案:

答案 0 :(得分:1)

不完全是。我认为您在这里错过了草丛中的订阅概念!

您可以使Lambda和设备相互之间或与AWS IoT Core进行通信,而不必将Lambda配置为Thing。

在Greengrass核心中签出“订阅”部分,您可以在其中创建一个lambda / device / AWS IoT Core之间的订阅。

将设备随身携带到Greengrass的过程中,您需要将其注册为事物并下载其凭证并根据需要放置它。但这不是lambda将消息发布到其他lambda或设备的情况!