在客户端设备和 Amazon IoT Core - Amazon IoT Greengrass
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在客户端设备和 Amazon IoT Core

您可以在客户端设备和 Amazon IoT Core 。客户端设备连接到在核心设备上运行的 MQTT 代理组件。默认情况下,核心设备不会在客户端设备和 Amazon IoT Core 。默认情况下,客户端设备只能通过 MQTT 相互通信。

在客户端设备和 Amazon IoT Core 中,配置MQTT 桥组件执行以下操作:

  • 将消息从客户端设备中继到 Amazon IoT Core 。

  • 中继来自的消息 Amazon IoT Core 添加到客户端设备。

注意

MQTT 桥接使用 QoS 1 发布和订阅 Amazon IoT Core ,即使客户端设备使用 QoS 0 发布和订阅本地 MQTT 代理也是如此。因此,当您从本地 MQTT 代理上的客户端设备中继 MQTT 消息时,您可能会发现额外的延迟时间 Amazon IoT Core 。有关核心设备 MQTT 配置的更多信息,请参阅配置 MQTT 超时和缓存设置

配置和部署 MQTT 桥组件

MQTT 桥组件使用主题映射列表,每个映射都指定一个消息源和一个消息目标。在客户端设备和 Amazon IoT Core ,部署 MQTT 桥接组件,并在组件配置中指定每个源主题和目标主题。

要将 MQTT 桥接组件部署到核心设备或核心设备组,创建部署中,其中包含aws.greengrass.clientdevices.mqtt.Bridge组件。指定主题映射mqttTopicMapping在部署中的 MQTT 桥组件配置中。

以下示例定义了一个部署,该部署将 MQTT 桥接组件配置为中继与clients/+/hello/world主题过滤器从客户端设备到 Amazon IoT Core 。这些区域有:merge配置更新需要一个序列化的 JSON 对象。有关更多信息,请参阅 更新组件配置

Console
{ "mqttTopicMapping": { "HelloWorldIotCore": { "topic": "clients/+/hello/world", "source": "LocalMqtt", "target": "IotCore" } } }
Amazon CLI
{ "components": { "aws.greengrass.clientdevices.mqtt.Bridge": { "version": "2.0.0", "configurationUpdate": { "merge": "{\"mqttTopicMapping\":{\"HelloWorldIotCore\":{\"topic"\:\"clients/+/hello/world\",\"source\":\"LocalMqtt\",\"target\":\"IotCore\"}}}" } } ... } }

中继 MQTT 消息

在客户端设备和 Amazon IoT Core 、配置和部署 MQTT 桥组件并指定要中继的主题。

例 示例:将有关主题的消息从客户端设备中继到 Amazon IoT Core

以下 MQTT 桥组件配置指定中继与clients/+/hello/world/event主题过滤器从客户端设备到 Amazon IoT Core 。

{ "mqttTopicMapping": { "HelloWorldEvent": { "topic": "clients/+/hello/world/event", "source": "LocalMqtt", "target": "IotCore" } } }

例 示例:中继有关主题的消息 Amazon IoT Core 到客户端设备

以下 MQTT 桥组件配置指定中继与clients/+/hello/world/event/response主题筛选条件 Amazon IoT Core 添加到客户端设备。

{ "mqttTopicMapping": { "HelloWorldEventConfirmation": { "topic": "clients/+/hello/world/event/response", "source": "IotCore", "target": "LocalMqtt" } } }