Features
| Pricing | Documentation | Contact | Blog
| Service Name: | AWS IoT Data |
| ARN Format: | arn:aws:iot:{region}:{account}:topic/{topic path} |
| Style: | Async (Write) |
| Actions (required Permissions): |
iot:Publish
|
| Payload Format: | Static Mode: JSON Packet envelope Dynamic Mode: Raw binary payload |
| Arguments: | DynamicTopicSuffix (boolean, default: false),TopicSuffixExpression (binary range expression, optional),TopicSuffixFormatter (string, default: "hex")
|
The IoT Data service adapter enables UDP Gateway to publish messages to AWS IoT Core's data plane, allowing integration with IoT device ecosystems, IoT Core Rules, and Thing Shadows. This integration is ideal for bridging UDP-based device protocols into AWS IoT Core's MQTT infrastructure, where powerful Rules Engine capabilities can route, transform, and process device data.
The IoT Data adapter supports two distinct operating modes that determine how UDP packets are published to MQTT topics:
In static mode, all UDP packets are published to a single MQTT topic with metadata wrapped in a
JSON packet envelope. The envelope includes source IP/port, timestamp,
batch tag, and the payload encoded according to the destination's Formatter setting.
Configuration: No special configuration required. Static mode is the default when
DynamicTopicSuffix is not set or is false.
In dynamic topic suffix mode, each UDP packet is published to a unique MQTT topic based on extracted payload data or source network information. The raw binary payload is sent without JSON wrapping, preserving the original device protocol format.
Configuration options:
DynamicTopicSuffix (boolean, default: false) - Set to true to enable
dynamic topic suffix modeTopicSuffixExpression (string, optional) - A binary range expression that extracts bytes from
the UDP payload (e.g., "[0:4]" extracts the first 4 bytes). If not specified, the topic suffix
defaults to {source_ip}/{source_port}TopicSuffixFormatter (string, default: "hex") - Controls how extracted bytes are
converted to a string for the topic. Options: "hex", "ascii", "utf8",
"base64"Topic construction:
{base_topic_from_arn}/{dynamic_suffix}
Where the suffix is either:
TopicSuffixExpression evaluated against the payload, or{source_ip}/{source_port} if no expression is providedExample configuration (JSON):
{
"DestinationArn": "arn:aws:iot:us-east-1:123456789012:topic/devices",
"DynamicTopicSuffix": true,
"TopicSuffixExpression": "[0:4]",
"TopicSuffixFormatter": "hex"
}
This configuration would publish packets to topics like devices/A1B2C3D4, where
A1B2C3D4
is the hex representation of the first 4 bytes of each UDP payload.
iot service identifier and specify a topic path