MQTT Transmission - Topic Structure - AWS IOT Policy


I’m evaluating using Ignition for edge data acquisition where the data gathered will be transmitted using MQTT to our AWS IOT Core MQTT endpoint.

I need to adhere to a strict Policy in IOT Core regarding the root of the topics being published to. I can’t seem to find where in the MQTT Transmission module I should set what the topic root is, so that any topics Transmitters publish to are under that topic root.

Regards, John.

MQTT Transmission uses Sparkplug, which defines the topic namespace and payload definition for messages over MQTT. By nature, this means that messages will be published against the following topics, based on Group ID, Edge Node ID, and optionally Device ID:

spBv1.0/<Group ID>/<Message Type>/<Edge Node ID>[/<Device ID>]

I’m not experienced with Cirrus Link’s AWS modules, but perhaps those might help you… Worth taking a look if you’re not aware of them yet.

Thanks for the reply. I don’t think the AWS modules you linked are what I need as we’re just using AWS IOT Core like an ordinary MQTT Broker. What I was hoping was that I’d be able to have the Sparkplug messages publish to a topic structure that simply had a root prefix I could configure. E.g.

myTopicRoot/someOtherPart/spBv1.0/<Group ID>/<Message Type>/<Edge Node ID>[/<Device ID>]

Regards, John.

John, there may be an alternative… If you setup a local broker such as Mosquitto, you might be able to leverage its “bridge” configuration ability, which you can think of as just a forwarder/relay. You can also specify a remote prefix for the topics published to the other side, like you’re describing. Take a look at the mosquitto.conf docs under Configuring Bridges.

Again, thanks for the reply. That does sound like a workable solution. I’ve done bridging with Mosquitto before to AWS and was able to prefix as you suggest. I’ll give that a go.