4

使用 AWS greengrass 处理边缘案例,我们计划在设备上运行多个 docker 容器,这些容器将使用 MQTT 相互通信。

到目前为止,我们已成功安装和连接 greengrass,部署容器并使用greengrass组件aws.greengrass.clientdevices.mqtt.Moquette的进程间通信

ipc_client = awsiot.greengrasscoreipc.connect()

这是使用套接字连接。

如何使用主机、端口和身份验证将我的应用程序连接到本地 MQTT 代理?

像这样的东西

myAWSIoTMQTTClient = AWSIoTPyMQTT.AWSIoTMQTTClient(CLIENT_ID)
myAWSIoTMQTTClient.configureEndpoint(ENDPOINT, PORT)
if PATH_TO_ROOT and PATH_TO_KEY and PATH_TO_CERT:
  myAWSIoTMQTTClient.configureCredentials(PATH_TO_ROOT, PATH_TO_KEY, PATH_TO_CERT)
myAWSIoTMQTTClient.connect()

到目前为止,我只能使用 IPC 建立连接。特别是对于开发,另一种连接模式会很有帮助。此外,我们还想将外部设备附加到 MQTT 代理。

谢谢你的支持!

4

1 回答 1

0

moquette 代理对客户端执行与 AWS IoT 相同的双向 TLS。所有连接的 MQTT 客户端必须在 IoT 核心中注册为事物,具有 X.509 证书,并与 Greengrass 核心关联以进行发现(连接其他设备所需)。完成此操作并配置客户端设备身份验证组件后,您可以使用 Greengrass 的发现机制来获取 moquette 的端点和用于 moquette 服务器证书的签名 CA(内容将用于PATH_TO_ROOT)。查看基本发现示例以了解其工作原理。

即使在开发过程中,我也会坚持使用 IPC 方法。使用 IPC 是否缺少使开发更加困难的东西?

于 2021-09-30T13:46:14.150 回答