【发布时间】:2020-10-27 20:59:18
【问题描述】:
我们可以使用 lambda 函数连接到 AWS IoT Greengrass 核心并发布消息。对于接收 lambda 发布的消息的设备,需要满足 2 件事: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 标识为设备(事物)。
我理解对了吗?
【问题讨论】:
标签: aws-iot greengrass aws-iot-core aws-iot-greengrass