将网关连接到 AWS IoT

Connect gateway to AWS IoT

我想将一个从 mqtt 设备接收数据的外部网关连接到我的 AWS IoT Core。

在这张图片中,您可以(或多或少)找到该项目的概览。

Details of the project

总而言之,我想将上一张图片的物联网网关连接到 AWS IoT Core。

我看过很多关于类似主题的示例,但在其中 none 个中我可以找到我想做的事情。

是否可以仅通过了解我的 AWS 云帐户的 hostname/endpoint 并将其放在我的度假胜地以向该主机发送数据来做到这一点?

如何找到我的 AWS hostname/endpoint?这有效吗:aws iot describe_endpoint?

将主机名放入外部网关后,我将在 IoT Core 中创建订阅。

我找到的最相似的教程是:

https://aws.amazon.com/es/blogs/iot/how-to-bridge-mosquitto-mqtt-broker-to-aws-iot/

但我不会在 Mosquitto 和 AWS IoT 之间建立桥梁,而是直接将数据从网关发送到 AWS IoT。

如果这不是正确的方法,我应该怎么做?

谢谢!

要将任何设备连接到 AWS IoT Core,首先应将设备定义为 AWS IoT 服务中的事物。通过定义它,您将获得网关的授权和身份验证,它们应该放置在您的设备中。因为您的网关和 AWS IoT 代理之间的通信应该是安全的。其次,要连接到 AWS IoT 代理,应使用其中一个 AWS IoT SDK。您可以找到有关它们的更多信息 here。 SDK 的选择取决于您的网关。例如,如果是 运行 OS 基于 Linux 或 Windows 你可以使用 Python (博托),如果是 Bare-Metal,您可以在嵌入式 C 中使用 SDK。 您应该考虑附加到设备证书的正确策略。例如,以下策略将允许您的设备执行描述的所有操作 here

{
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "iot:*",
      "Resource": "*"
    }
  ],
  "Version": "2012-10-17"
}

您可以在设置下找到您的 IoT Core 的端点地址。

我只是按照教程让它工作:

https://aws.amazon.com/es/blogs/iot/how-to-bridge-mosquitto-mqtt-broker-to-aws-iot/

但是我不得不在 CMD 中使用 .conf 文件,而不是在 mosquitto 中使用:

    mosquitto_pub --cafile rootCA.pem --cert certificate.pem.crt --key private.pem.key -h XXXX.iot.eu-west-2.amazonaws.com -p 8883 -q 1 -d -t topic -m "testing"