Публикация в AWS SNS для определенного пользователя с помощью идентификатора Cognito
====================================================================================

Здесь я пытаюсь отправить уведомление через SNS и APNS, когда конкретный пользователь является частью недавно добавленного элемента DynamoDB. Я хочу отправить его пользователям Cognito Identity ID, а не на токен устройства.

Поэтому лямбда должна срабатывать при добавлении элемента, а затем просматривать список идентификаторов Cognito Identity, который также является частью элемента.

Затем предполагается, что Lambda публикует push-уведомления для каждого идентификатора Cognito Identity ID.

Все устройства зарегистрированы как конечные точки в пределах sns. Я также сохраняю Cognito Identity ID в строке «пользовательские данные» для конечной точки.

Но я не нашел способа отправлять уведомления прямо на Cognito Identity ID. Должен ли я добавить тему для каждого пользователя и отправить уведомление в эту тему? Или мне нужно хранить другую таблицу DynamoDB для сопоставления идентификаторов Cognito Identity с токенами устройств? Было бы здорово, если бы кто-то знал более простой и не слишком дорогой способ!

Спасибо!

Если вы отправляете Push-уведомления через SNS в APNS или GCM, вам сначала нужно создать конечную точку платформы SNS для каждого токена устройства, зарегистрированного для Push-уведомлений. Получив конечную точку SNS, вам необходимо сопоставить эту конечную точку с идентификатором Cognito Identity ID в пользовательской таблице или другой таблице сопоставления.

Когда новый элемент добавляется в DynamoDB, обработчику событий (Lambda) необходимо сопоставить входящий идентификатор Cognito Identity ID с конечной точкой платформы SNS в таблице пользователей, а затем он может направить публикацию на эту одну конечную точку.

Вам не нужно создавать тему SNS для отправки Push на отдельные конечные точки.