Skip to content
Stand with Ukraine flag

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.
ConnectionCondition
SuccessMessage published to SNS. Metadata includes messageId and requestId.
FailureTimeout, 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" }
}
}