数据在什么情况下从 Lambda 发送到 AWS IoT Core?
With what context is data sent from a Lambda to AWS IoT core?
我们可以使用 lambda 函数连接到 AWS IoT Greengrass Core 并发布消息。对于接收 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 识别为设备(事物) .
我理解对了吗?
不完全是。我认为您在这里错过了 greengrass 中订阅的概念!
您可以让 Lambda 和设备相互通信或与 AWS IoT Core 通信,而无需将 lambda 配置为事物。
查看您的 Greengrass 核心中的订阅部分,您可以在其中创建一个 lambda/device/AWS IoT 核心与另一个之间的订阅。
当然,要将设备加入 greengrass,您需要将其注册为事物并为其下载凭据并根据需要放置它。但是,让一个 lambda 向其他 lambda 或设备发布消息并非如此!
我们可以使用 lambda 函数连接到 AWS IoT Greengrass Core 并发布消息。对于接收 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 识别为设备(事物) .
我理解对了吗?
不完全是。我认为您在这里错过了 greengrass 中订阅的概念!
您可以让 Lambda 和设备相互通信或与 AWS IoT Core 通信,而无需将 lambda 配置为事物。
查看您的 Greengrass 核心中的订阅部分,您可以在其中创建一个 lambda/device/AWS IoT 核心与另一个之间的订阅。
当然,要将设备加入 greengrass,您需要将其注册为事物并为其下载凭据并根据需要放置它。但是,让一个 lambda 向其他 lambda 或设备发布消息并非如此!