Sending a notification to a topic
Written by
Updated at September 12, 2025
Management console
AWS CLI
AWS SDK for Python
-
Select the topic.
-
Click Send notification.
-
Select a notification type:
- Same: To send the same notification to all channel types.
- Different: To enter different texts for different channel types.
-
Enter the same text for all channels, or different texts for different channel types, in JSON format. If a channel is not specified, the notification will contain the
defaultmessage text.Notification format in JSON:
{ "default": "<Default_text>", "sms": "<Notification_text_for_sms>", "WEB": "<Notification_text_for_bowser>", "APNS": { "aps": { "alert": { "title": "Notification_title", "body": "Notification_text" } } }, "GCM": { "notification": { "title": "Notification_title", "body": "Notification_text" } }, "HMS": { "notification": { "title": "Notification_title", "body": "<Notification_text>" } }, "RUSTORE": { "notification": { "title": "Notification_title", "body": "<Notification_text>" } } } -
Click Send.
-
If you do not have the AWS CLI yet, install and configure it.
-
Run this command:
To send a notification:
aws sns publish \ --topic-arn <topic_ARN> \ --message-structure json \ --message '{"default": "<notification_text>","APNS": {"aps":{"alert":"<notification_text>"}},"GCM": {"notification":{"body":"<notification_text>"}},"HMS": {"notification":{"body":"<notification_text>"}},"RUSTORE": {"notification":{"body":"<notification_text>"}},"WEB": "<notification_text>","sms": "<notification_text>"}'Where:
topic-arn: Topic ARN.message-structure: Message format (json).message: Notification text or path to the notification file. To send different notifications depending on channel type, specify the channel and notification text: If some channel is not specified, the default message will be sent.
For more information about the
aws sns publishcommand, see the AWS documentation .
-
If you do not have the AWS SDK for Python (boto3) yet, install and configure it.
-
To create a push notification channel, use the following code:
try: response = client.publish( TopicArn="<topic_ARN>", Message=json.dumps({ "default": "<notification_text>", "APNS": {"aps":{"alert":"<notification_text>"}}, "GCM": {"notification":{"body":"<notification_text>"}}, "HMS": {"notification":{"body":"<notification_text>"}}, "RUSTORE": {"notification":{"body":"<notification_text>"}}, "WEB": "<notification_text>", "sms": "<notification_text>" }), MessageStructure="json" ) print(f"Message ID: {response["MessageId"]}") except botocore.exceptions.ClientError as error: print(f"Error: {error}")Where:
TopicArn: Topic ARN.Message: Notification text. You can add the same text for all channel types or different texts for each channel type. If a channel is not specified, the notification will contain thedefaultmessage text.MessageStructure: Message format (json).