0

我目前在运行完美的 ubuntu 容器中运行 AWS greengrass 核心。我想要的是使用核心 mqtt 代理将数据发送到 AWS IOT。到目前为止,我读到的是 greengrass 核心有自己的可以配置的 MQTT 代理。为此,我尝试更新此链接中提到的部署:https ://docs.aws.amazon.com/greengrass/v2/developerguide/configure-greengrass-core-v2.html

但我仍然看不到 mqtt 经纪人出现。我还有一个容器正在向其他 mqtt 代理发送数据,我想将相同的数据发送到 AWS IoT 核心。为此,我需要在应用程序中配置在 AWS greengrass 核心上运行的 mqtt 代理。

我再次有两个问题:

  1. 我采取的方法是否正确?我们能否将 mqtt 代理配置为在 AWS greengrass 核心上本地运行。如果是,那么我们该怎么做?
  2. 如果我们无法在 AWS greengrass 上运行 mqtt 代理,那么我们可以将数据发送到 IoT 核心的方式是什么。我们可以通过创建像 lambda 函数这样的自定义组件来实现它吗?

任何帮助,将不胜感激。

4

1 回答 1

0

对于 Greengrass v2,如果您在 IOT 核心设备中安装了aws.greengrass.Nucleus组件,您可以使用https://docs.aws.amazon.com/greengrass/v2/developerguide/interprocess-communication.html#ipc中提到的包- 将 MQTT 消息从核心设备发送到 IOT Core 的要求(目前不支持 Nodejs

示例可以在
https://docs.aws.amazon.com/greengrass/v2/developerguide/ipc-iot-core-mqtt.html中找到

IOT Core Data Endpoint
如果您在 Greengrass 核心设备上安装了Greengrass CLI组件,则可以运行

sudo /greengrass/v2/bin/greengrass-cli component list

并找到aws.greengrass.Nucleus下的iotDataEndpoint和mqtt配置

Component Name: aws.greengrass.Nucleus
Version: 2.3.0
State: FINISHED
Configuration: {... "iotDataEndpoint":"xyz-ats.iot.region.amazonaws.com", "mqtt":{"spooler":{}},...}
于 2021-08-03T00:36:41.473 回答