我们可以使用 lambda 函数连接到 AWS IoT Greengrass 核心并发布消息。要让设备接收 lambda 发布的 msg,需要满足 2 件事:1) 需要订阅 greengrass 中的 lambda(具有适当的主题)和 2) 订阅者的代码执行.subscribe
该主题。拉姆达示例:
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 标识为设备(事物)。
我理解对了吗?