AWS Greengrass。无法从本地网络中的设备mqtt客户端触发内核的lambda函数

我想要的是将一些指标从greengrass device发送到greengrass lambda function中的local network

我正在使用basicDiscovery.py的订阅模式将一些设备指标发送到Amazon greengrass核心设备,并调用部署在核心上的lambda函数。 lambda函数只是打印事件。 我的困惑是,当我使用来自IoT Cloud -> lambda function的订阅时,它可以正常工作,但是当我配置来自device -> lambda function的订阅时,则不起作用。
同样,当我断开设备与互联网的连接(情况1)时,它会缓冲消息并在再次连接到互联网时将其发送。 我知道我将xxxxxxx.iot.us-west-2.amazonaws.com作为端点,并且可以通过Internet访问它,但是不确定如何为核心提供端点。

jujumickey 回答:AWS Greengrass。无法从本地网络中的设备mqtt客户端触发内核的lambda函数

我曾尝试将数据从设备发送到lambda,将lambda发送到云。根据我的理解,您必须注意以下几点: 1.连接到greengrass的设备应发布主题的数据 2.对于同一主题,必须在设备和lambda之间创建订阅 3.要测试此行为,请在lambda和云之间创建另一个订阅

参考:https://medium.com/tensoriot/aws-greengrass-on-raspberry-pi-creating-core-and-node-devices-707a38452293

,

我遇到了同样的问题,我试图在Greengrass中触发一个lambda函数。如果我创建了一个订阅,其来源是云,目标是lambda。然后,当我使用设备凭据将消息发布到某个主题时,就会触发lambda函数。

但是,如果greengrass和AWS之间的连接丢失,则lambda函数不会触发。即使greengrass与AWS没有连接,我也需要lambda函数正常工作。

因此,我认为如果更改设备的订阅来源,则可以解决此问题。

但是,如果我创建的订阅将源设置为设备本身,则发布消息不会触发lambda函数。虽然我可以从该主题获得消息。

本文链接:https://www.f2er.com/3162991.html

大家都在问