Отправить уведомление в топик
Статья создана
Обновлена 22 августа 2025 г.
Консоль управления
AWS CLI
AWS SDK для Python
-
Выберите топик.
-
Нажмите кнопку Отправить уведомление.
-
Выберите вид уведомлений:
- Одинаковые — во все типы каналов будет отправлено одно и то же уведомление.
- Различные — можно ввести разные тексты для разных типов каналов.
-
Введите единый текст для всех каналов или разные тексты для разных типов каналов в формате JSON. Если канал не указан, будет отправлен текст по умолчанию из поля
default.Формат уведомления в JSON:
{ "default": "<Текст_по_умолчанию>", "sms": "<Текст_уведомления_для_sms>", "WEB": "<Текст_уведомления_для_браузера>", "APNS": { "aps": { "alert": { "title": "Заголовок_уведомления", "body": "Текст_уведомления" } } }, "GCM": { "notification": { "title": "Заголовок_уведомления", "body": "Текст_уведомления" } }, "HMS": { "notification": { "title": "Заголовок_уведомления", "body": "<Текст_уведомления>" } }, "RUSTORE": { "notification": { "title": "Заголовок_уведомления", "body": "<Текст_уведомления>" } } } -
Нажмите кнопку Отправить.
-
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
-
Выполните команду:
Для отправки уведомления:
aws sns publish \ --topic-arn <ARN_топика> \ --message-structure json \ --message '{"default": "<текст_уведомления>","APNS": {"aps":{"alert":"<текст_уведомления>"}},"GCM": {"notification":{"body":"<текст_уведомления>"}},"HMS": {"notification":{"body":"<текст_уведомления>"}},"RUSTORE": {"notification":{"body":"<текст_уведомления>"}},"WEB": "<текст_уведомления>","sms": "<текст_уведомления>"}'Где:
topic-arn— ARN топика.message-structure— формат сообщенияjson.message— текст уведомления или путь к файлу с уведомлением. Для отправки разных уведомлений в зависимости от типа канала укажите канал и текст уведомления. Если какой-либо канал не указан, будет отправлено сообщение по умолчанию.
Подробнее о команде
aws sns publishсм. в документации AWS .
-
Если у вас еще нет AWS SDK для Python (boto3), установите и настройте его.
-
Чтобы создать канал push-уведомлений, используйте следующий код:
try: response = client.publish( TopicArn="<ARN_топика>", Message=json.dumps({ "default": "<текст_уведомления>", "APNS": {"aps":{"alert":"<текст_уведомления>"}}, "GCM": {"notification":{"body":"<текст_уведомления>"}}, "HMS": {"notification":{"body":"<текст_уведомления>"}}, "RUSTORE": {"notification":{"body":"<текст_уведомления>"}}, "WEB": "<текст_уведомления>", "sms": "<текст_уведомления>" }), MessageStructure="json" ) print(f"Message ID: {response["MessageId"]}") except botocore.exceptions.ClientError as error: print(f"Error: {error}")Где:
TopicArn— ARN топика.Message— текст уведомления. Можно указать единый текст для всех типов каналов или разные тексты для каждого типа канала. Если какой-либо канал не указан, будет отправлено сообщение по умолчанию из поляdefault.MessageStructure— формат сообщения (json).