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.


From what I can understand here is that there’s no way for us to set up a topic with syntax that differs from the sparkplug one as displayed by kcollins1 is that correct? I posted in another thread (link below) asking about how to do a script version of publishing messages that would let us define the topic, but this thread seems more applicable to the out of the box setup of transmission.

We have some devices that have predefined subscription syntax so in order to publish out to them we would need to be able to set the topic to do something like build it’s topic from the tag filepath. Is there some setting in the transmitter setup that lets us do this instead of defaulting to include spBv1.0 etc?

I’d like to add to this thread that we be able to change topics. AWS does limit what I can do and not having the flexibility to change means I’m likely to drop use of this product. I don’t think its reasonable to require people to setup more stuff to get it working when all it is a predefined topic that could be a textbox to fill in.