我们可以使用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>
我明白这个意思了吗
答案 0 :(得分:1)
不完全是。我认为您在这里错过了草丛中的订阅概念!
您可以使Lambda和设备相互之间或与AWS IoT Core进行通信,而不必将Lambda配置为Thing。
在Greengrass核心中签出“订阅”部分,您可以在其中创建一个lambda / device / AWS IoT Core之间的订阅。
将设备随身携带到Greengrass的过程中,您需要将其注册为事物并下载其凭证并根据需要放置它。但这不是lambda将消息发布到其他lambda或设备的情况!