通过 AWS IoT Basic 摄取发送的消息是否无法到达订阅者(与 MQTT 或 HTTP 不同)?

Do messages sent via AWS IoT Basic ingest not reach subscribers (unlike MQTT or HTTP)?

设备可以通过 MQTT、HTTP 或基本摄取向 AWS IoT 规则引擎发送消息。规则引擎使用SQL查询来监听主题,并在匹配FROM子句的主题到达时选择数据。

发送MQTT消息的代码:

device.publish('topic/subtopic, payload)

通过基本摄取发送消息的代码是:

device.publish('aws/rules/topic/subtopic, payload)

URL 通过 HTTP POST 发送消息是:

https://IoT_data_endpoint/topics/url_encoded_topic_name?qos=1

MQTT 涉及代理 (pub/sub)。因此,通过 MQTT 发送到主题的消息将到达所有订阅者。同样,通过 HTTP 发送的消息也将到达所有订阅者。由于基本摄取绕过了代理,因此节省了成本,而且由于不涉及代理,因此消息不会到达任何订阅者。我理解正确吗?

Where as basic ingest bypasses the broker, thus saving cost and also since broker is not involved the message will not reach any subscribers. Have I understood this correctly?

正确 - MQTT 订阅者将不会收到使用基本摄取发送的消息,因为代理被绕过。

来自 https://docs.aws.amazon.com/iot/latest/developerguide/iot-basic-ingest.html

的文档

Basic Ingest optimizes data flow by removing the publish/subscribe message broker from the ingestion path

以及“为 AWS IoT 设计 MQTT 主题”白皮书位于 https://d1.awsstatic.com/whitepapers/Designing_MQTT_Topics_for_AWS_IoT_Core.pdf

Basic Ingest enables you to send data to only cloud services through the Rules Engine.

MQTT 客户端无法订阅基本摄取保留主题:

Your devices and rules cannot subscribe to Basic Ingest reserved topics

https://docs.aws.amazon.com/iot/latest/developerguide/iot-basic-ingest.html