Создать топик
-
В консоли управления
выберите каталог. -
Перейдите
в сервис Cloud Notification Service. -
Слева выберите раздел Топики.
-
Нажмите кнопку Создать топик.
-
Введите имя топика. Имя топика должно быть уникальным в Cloud Notification Service.
-
(Опционально) Настройте запись логов:
- В разделе Логирование включите Запись логов.
- В списке Каталог выберите каталог, в котором будет расположена лог-группа.
- В поле Лог-группа выберите существующую лог-группу или создайте новую.
-
(Опционально) Включите опцию Yandex Message Queue, чтобы отправлять сообщения в очереди Message Queue, которые подписаны на топик. Укажите сервисный аккаунт, у которого есть роль
ymq.writer:- на каталог, в котором находятся очереди, подписанные на топик;
- на каталог, в котором находится сам сервисный аккаунт.
-
Нажмите Создать топик.
-
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
-
Выполните команду:
aws sns create-topic \ --name <имя_топика> \ --attributes "{\"SQSServiceAccountId\":\"<идентификатор_сервисного_аккаунта>\"}"Где:
name— произвольное имя топика, должно быть уникальным в Cloud Notification Service.
-
SQSServiceAccountId— идентификатор сервисного аккаунта, от имени которого сообщения из топика будут отправляться в очереди Message Queue. Необязательный параметр. У сервисного аккаунта должна быть рольymq.writer:- на каталог, в котором находятся очереди, подписанные на топик;
- на каталог, в котором находится сам сервисный аккаунт.
Примечание
Чтобы указать сервисный аккаунт в атрибуте
SQSServiceAccountId, у пользователя должна быть рольiam.serviceAccounts.userна каталог, в котором находится сервисный аккаунт. Иначе команда завершится с ошибкой авторизации.
Подробнее о команде
aws sns create-topicсмотрите в документации AWS .
-
Если у вас еще нет AWS SDK для Python (boto3), установите и настройте его.
-
Чтобы создать топик, используйте следующий код:
response = client.create_topic( Name="<имя_топика>", Attributes={ "SQSServiceAccountId": "<идентификатор_сервисного_аккаунта>", }, ) print(f"Topic ARN:", response['TopicArn'])Где:
Name— произвольное имя топика, должно быть уникальным в Cloud Notification Service.
-
SQSServiceAccountId— идентификатор сервисного аккаунта, от имени которого сообщения из топика будут отправляться в очереди Message Queue. Необязательный параметр. У сервисного аккаунта должна быть рольymq.writer:- на каталог, в котором находятся очереди, подписанные на топик;
- на каталог, в котором находится сам сервисный аккаунт.
Примечание
Чтобы указать сервисный аккаунт в атрибуте
SQSServiceAccountId, у пользователя должна быть рольiam.serviceAccounts.userна каталог, в котором находится сервисный аккаунт. Иначе команда завершится с ошибкой авторизации.
После создания топика изменить его имя невозможно. Для добавления в топик эндпоинтов создайте подписки.