Skip to content

SNS

Protocol: Query (XML) and JSON 1.0 (both supported) Endpoint: POST http://localhost:4566/

Supported Actions

Action Description
CreateTopic Create a topic
DeleteTopic Delete a topic
ListTopics List all topics
GetTopicAttributes Get topic configuration
SetTopicAttributes Update topic configuration
Subscribe Subscribe an endpoint (SQS, HTTP, Lambda, email)
Unsubscribe Remove a subscription
ListSubscriptions List all subscriptions
ListSubscriptionsByTopic List subscriptions for a specific topic
GetSubscriptionAttributes Get subscription settings
SetSubscriptionAttributes Update subscription settings
ConfirmSubscription Confirm a pending subscription
Publish Publish a message to a topic
PublishBatch Publish up to 10 messages in one call
TagResource Tag a topic
UntagResource Remove tags from a topic
ListTagsForResource List tags on a topic

Examples

export AWS_ENDPOINT=http://localhost:4566

# Create a topic
TOPIC_ARN=$(aws sns create-topic --name notifications \
  --query TopicArn --output text \
  --endpoint-url $AWS_ENDPOINT)

# Subscribe an SQS queue
QUEUE_ARN=$(aws sqs get-queue-attributes \
  --queue-url $AWS_ENDPOINT/000000000000/orders \
  --attribute-names QueueArn \
  --query Attributes.QueueArn --output text \
  --endpoint-url $AWS_ENDPOINT)

aws sns subscribe \
  --topic-arn $TOPIC_ARN \
  --protocol sqs \
  --notification-endpoint $QUEUE_ARN \
  --endpoint-url $AWS_ENDPOINT

# Publish a message
aws sns publish \
  --topic-arn $TOPIC_ARN \
  --message '{"event":"user.registered"}' \
  --endpoint-url $AWS_ENDPOINT

# Fan-out: publish and verify the SQS queue received the message
aws sqs receive-message \
  --queue-url $AWS_ENDPOINT/000000000000/orders \
  --endpoint-url $AWS_ENDPOINT

SNS → SQS Fan-Out

Floci supports real SNS → SQS fan-out. When you publish to a topic, all SQS-subscribed queues receive the message immediately.

Supported subscription protocols: - sqs — delivers to a Floci SQS queue - lambda — invokes a Floci Lambda function - http / https — posts to an HTTP endpoint