在 greengrass 核心 AWS

时间:2021-05-17 10:06:38

标签: amazon-web-services mqtt greengrass aws-iot-core aws-iot-greengrass

我目前正在 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 函数这样的自定义组件来实现它吗?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

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

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

物联网核心数据端点
如果您在 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":{}},...}