AWS SDK for Go
Developer Guide

The AWS Documentation website is getting a new look!
Try it now and let us know what you think. Switch to the new look >>

You can return to the original look by selecting English in the language selector above.

Sending a Message to All Amazon SNS Topic Subscribers

The following example sends the message supplied on the command line to all subscribers to the Amazon SNS topic with the ARN specified on the command line.

package main import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/sns" "flag" "fmt" "os" ) func main() { msgPtr := flag.String("m", "", "The message to send to the subscribed users of the topic") topicPtr := flag.String("t", "", "The ARN of the topic to which the user subscribes") flag.Parse() message := *msgPtr topicArn := *topicPtr if message == "" || topicArn == "" { fmt.Println("You must supply a message and topic ARN") fmt.Println("Usage: go run SnsPublish.go -m MESSAGE -t TOPIC-ARN") os.Exit(1) } // Initialize a session that the SDK will use to load // credentials from the shared credentials file. (~/.aws/credentials). sess := session.Must(session.NewSessionWithOptions(session.Options{ SharedConfigState: session.SharedConfigEnable, })) svc := sns.New(sess) result, err := svc.Publish(&sns.PublishInput{ Message: aws.String(message), TopicArn: topicPtr, }) if err != nil { fmt.Println(err.Error()) os.Exit(1) } fmt.Println(*result.MessageId) }

See the complete example on GitHub.