SNS getEndpointAttributes возвращает старые данные после события EventEndpointUpdated

При присоединении темы к настраиваемой теме «Конечная точка обновлена» приложения SNS я столкнулся с неожиданным поведением. Согласно документации AWS по событиям приложений SNS, Я должен получать событие в моей настроенной теме, когда конечная точка платформы была обновлена ​​до отключенной или ее токен изменился.

В моем случае у меня есть лямбда-функция, подписанная на эту тему, которая затем извлекает атрибуты конечной точки платформы через вызов javascript sdk SNS.getEndpointAttributes AWS, чтобы я мог проверить, какой атрибут изменился, чтобы либо удалить конечную точку, либо обновить связанный токен в моем постоянном хранилище. . Однако этот вызов возвращает конечные точки как Enabled = true, что не позволяет мне предпринять корректирующие действия. Однако, если я загляну в консоль AWS SNS, я увижу, что конечная точка отключена как Enabled = false.

Сталкивались ли другие с подобными несоответствиями, и если да, то как лучше всего их обойти? Спасибо за любой вклад!


person dvisco    schedule 14.03.2018    source источник


Ответы (1)


Я также столкнулся с аналогичной проблемой, когда amazon уведомил меня о событиях приложения sns через http. Чтобы обойти эту проблему, я фактически отложил выполнение кода, синхронизирующего эти обновления конечных точек с моей базой данных. Для этого я запланировал задание для моего фонового работника очереди и отложил его выполнение через 30 секунд после того, как amazon уведомил об этом через http. Я не знаю, является ли это лучшей практикой или нет, но она работает в моем сценарии.

person Ashish Agarwal    schedule 12.05.2018
comment
Я делаю что-то подобное. Я сплю 60 секунд в своей лямбда-функции, которая вызывается событием обновления конечной точки. - person dvisco; 08.08.2018