Skip to content
© 2026 The ThingsBoard Authors
Try for free

ThingsBoard Cloud

Choose your data region

Your data stays in the region you choose, for residency and compliance. No credit card required.

Rather run it yourself? Install on your own servers

AWS SNS

Use this node to publish messages to an AWS Simple Notification Service (SNS) topic — for example, fanning out device alarms to multiple subscribers (Lambda, SQS, email, SMS) through a single SNS topic, or triggering downstream AWS workflows when critical telemetry thresholds are exceeded.

  • Topic ARN pattern — required. Full ARN of the SNS topic. Supports templatization.
  • AWS Access Key ID — required. IAM access key with SNS publish permissions.
  • AWS Secret Access Key — required. IAM secret access key.
  • AWS Region — required. AWS region where the topic is hosted (e.g., us-east-1).

Fixed timeouts: 10 s connection, 5 s request.

On Success, adds to metadata: messageId (SNS message ID), requestId (AWS request ID).

On Failure, adds to metadata: error (exception class and message).

Message data is not modified.

  1. Resolve the topic ARN pattern from message data and metadata.
  2. Publish the message data as the SNS message body.
  3. On success: add messageId and requestId to metadata; route via Success.
  4. On error: add error to metadata; route via Failure.
Connection Condition
Success Message published to SNS. Metadata includes messageId and requestId.
Failure Timeout, SNS error, invalid credentials, or unexpected error.

Data: { "alarmType": "HighTemperature", "value": 85 } | Metadata: { "deviceType": "sensor" }.

{
"topicArnPattern": "arn:aws:sns:us-east-1:123456789012:device-alarms",
"accessKeyId": "AKIAIOSFODNN7EXAMPLE",
"secretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
"region": "us-east-1"
}

Outgoing metadata adds: { "messageId": "abc123", "requestId": "req-xyz" }. Routes via Success.

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "TbSnsNodeConfiguration",
"type": "object",
"required": ["topicArnPattern", "accessKeyId", "secretAccessKey", "region"],
"additionalProperties": false,
"properties": {
"topicArnPattern": { "type": "string" },
"accessKeyId": { "type": "string" },
"secretAccessKey": { "type": "string" },
"region": { "type": "string" }
}
}