Создать подписку
-
В консоли управления
выберите каталог, в котором находится топик. -
Перейдите
в сервис Cloud Notification Service. -
Слева выберите раздел Топики.
-
Выберите топик.
-
Слева выберите Подписки.
-
Нажмите кнопку Создать подписку.
-
Выберите тип канала уведомлений:
-
Мобильные push-уведомления.
Введите ARN эндпоинта в формате:
arn:aws:sns::<cloud_id>:endpoint/<platform>/<channel_name>/<endpoint_unique_id>. Скопировать ARN эндпоинта можно на странице его настроек. -
Push-уведомления в браузере.
Введите ARN эндпоинта в формате:
arn:aws:sns::<cloud_id>:endpoint/<platform>/<channel_name>/<endpoint_unique_id>. -
SMS.
Введите номер телефона в формате E.164
, например+79991112233. Телефон не требуется предварительно добавлять в канале уведомлений SMS, при этом сам канал должен быть создан. -
Yandex Message Queue
Введите URL очереди Message Queue.
-
-
Нажмите Создать подписку.
Таким же образом подпишите на топик другие эндпоинты.
-
-
Если у вас еще нет AWS CLI, установите и сконфигурируйте его.
-
Выполните команду:
aws sns subscribe \ --topic-arn <ARN_топика> \ --protocol <тип_канала> \ --notification-endpoint <ARN_эндпоинта_или_номер_телефона>Где:
-
topic-arn— ARN топика. -
protocol— тип канала отправки уведомлений, напримерsms,application,sqs. -
notification-endpoint— эндпоинт, который подписывается на топик:- для мобильных push-уведомлений и push-уведомлений в браузере — ARN эндпоинта в формате
arn:aws:sns::<cloud_id>:endpoint/<platform>/<channel_name>/<endpoint_unique_id>; - для SMS — номер телефона в формате E.164
, например+79991112233; - для Message Queue — URL очереди.
Чтобы топик мог отправлять сообщения в очередь, у него должен быть задан атрибут
SQSServiceAccountId. Подробнее в инструкциях по созданию и управлению топиком. - для мобильных push-уведомлений и push-уведомлений в браузере — ARN эндпоинта в формате
Подробнее о команде
aws sns subscribeсмотрите в документации AWS . -
-
Если у вас еще нет AWS SDK для Python (boto3), установите и настройте его.
-
Чтобы подписать эндпоинт на уведомления в топике, используйте следующий код:
try: response = client.subscribe( TopicArn = "<ARN_топика>", Protocol = "<тип_канала>", Endpoint = "<ARN_эндпоинта_или_номер_телефона_или_URL_очереди>" ) print(f"Topic ARN: {response['TopicArn']}") except botocore.exceptions.ClientError as error: print(f"Error: {error}")Где:
-
TopicArn— ARN топика. -
Protocol— тип канала для отправки уведомлений, напримерsms,application,sqs. -
Endpoint— эндпоинт, который подписывается на топик:- для мобильных push-уведомлений и push-уведомлений в браузере — ARN эндпоинта в формате
arn:aws:sns::<cloud_id>:endpoint/<platform>/<channel_name>/<endpoint_unique_id>; - для SMS — номер телефона в формате E.164
, например+79991112233; - для Message Queue — URL очереди.
Чтобы топик мог отправлять сообщения в очередь, у него должен быть задан атрибут
SQSServiceAccountId. Подробнее в инструкциях по созданию и управлению топиком. - для мобильных push-уведомлений и push-уведомлений в браузере — ARN эндпоинта в формате
-