Отправка пользовательских уведомлений SNS только на выбранные конечные точки с использованием лямбды - PullRequest
0 голосов
/ 06 марта 2019

Допустим, у меня есть 100 человек, которые подписались на тему под названием "Rememberinde_me_my_appointment", и у меня есть лямбда-функция, которая дает мне список из 5 человек с их конечными точками, которым следует напомнить о своих назначениях завтра.

Теперь у меня вопрос, как должна работать связь между лямбда и SNS?

Все, что я хочу сделать, - это отправить 5 сообщений 5 людям, которые подписались на получение уведомлений, и я волшебным образом получил все их конечные точки.

Я снова отправляю их обратно в тему ?!что мне здесь делать, я в замешательстве?Похоже, я уже определил свою собственную тему и подписку, но что дальше?

1 Ответ

0 голосов
/ 06 марта 2019

Это плохой вариант использования для подписки на тему Amazon SNS.

Когда сообщение отправляется в тему SNS, все получатели получают сообщение .Вы также можете использовать Фильтрация сообщений Amazon SNS , чтобы ограничить количество подписчиков, получающих сообщение, на основе атрибута сообщения.

Однако, в зависимости от вашего варианта использования, неХороший способ отправить ваши сообщения .Ваш вариант использования, вероятно, будет лучше обработан путем отправки индивидуальных сообщений каждому человеку с индивидуальной информацией об их назначении, такой как:

Dear Joe, this is a reminder of your appointment with Dr Smith at 10am tomorrow.

Итак, вместоотправки сообщения в тему, используйте команду Amazon SNS publish() с конечной точкой ARN:

sns.publish(TargetArn=user_endpoint_arn, Message=msg)

Чтобы использовать действие публикации для отправки сообщенияДля мобильной конечной точки, например приложения на устройстве Kindle или на мобильном телефоне, необходимо указать EndpointArn для параметра TargetArn.EndpointArn возвращается при совершении вызова с действием CreatePlatformEndpoint.

Это хорошо для отправки сообщения в мобильное приложение.

Если вместо этого вы просто отправив SMS-сообщение , тогда вы можете опубликовать непосредственно на номер мобильного телефона:

sns.publish(PhoneNumber='+16025551234', Message=msg)
...