[Документация Yandex Cloud](../../../index.md) > [Yandex Cloud Notification Service](../../index.md) > [Пошаговые инструкции](../index.md) > Топики > Отправить уведомление в топик

# Отправить уведомление в топик

{% list tabs group=instructions %}

- Консоль управления {#console}

  1. В [консоли управления](https://console.yandex.cloud) выберите каталог, в котором находится топик.
  1. Перейдите в сервис **Cloud Notification Service**.
  1. Слева выберите раздел **Топики**.
  
     1. Выберите топик.
     1. Нажмите кнопку **Отправить уведомление**.
     1. Выберите вид уведомлений: 
          
         * **Одинаковые** — во все типы каналов будет отправлено одно и то же уведомление.
         * **Различные** — можно ввести разные тексты для разных типов каналов.
     
     1. Введите единый текст для всех каналов или разные тексты для разных типов каналов в формате JSON. Если канал не указан, будет отправлен текст по умолчанию из поля `default`.
        
         Формат уведомления в JSON:
         
         ```json
         {
           "default": "<Текст_по_умолчанию>",
           "sms": "<Текст_уведомления_для_sms>",
           "WEB": "<Текст_уведомления_для_браузера>",
           "APNS": {
             "aps": {
               "alert": {
                 "title": "Заголовок_уведомления",
                 "body": "Текст_уведомления"
               }
             }
           },
           "GCM": {
             "notification": {
               "title": "Заголовок_уведомления",
               "body": "Текст_уведомления"
             }
           },
           "HMS": {
             "notification": {
               "title": "Заголовок_уведомления",
               "body": "<Текст_уведомления>"
             }
           },
           "RUSTORE": {
             "notification": {
               "title": "Заголовок_уведомления",
               "body": "<Текст_уведомления>"
             }
           }
         }
         ```
     
     1. Нажмите кнопку **Отправить**.

- AWS CLI {#aws-cli}

  1. Если у вас еще нет AWS CLI, [установите и сконфигурируйте его](../../../storage/tools/aws-cli.md).
  1. Выполните команду:

     Для отправки уведомления:
     
     ```bash
     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](https://docs.amazonaws.cn/en_us/sns/latest/dg/sns-publish-to-topic.html).

- AWS SDK для Python {#python}

  1. Если у вас еще нет AWS SDK для Python (boto3), [установите и настройте его](../../tools/sdk-python.md#aws-sdk).
  1. Чтобы создать канал push-уведомлений, используйте следующий код:

     ```python
     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`).

{% endlist %}