У меня есть прецедент, где мне нужна служба Amazon SNS для отправки уведомления, пока мое приложение (давайте назовем его APP) не получило его, но в документации говорится, что максимальный срок службы сообщения может составлять 1 час ,Срок службы сообщений AWS SNS
Предположим, что APP падает, и это невозможно, чтобы получить его вживую через 1 час. Мне все равно нужно как-то получать эти сообщения.
Есть несколько способов реализации его:
- APP опросы от SQS. Мне не нравится этот параметр, потому что он создает слишком много сетевого трафика между APP и AWS.
- SNS отправляет уведомление обоим: APP и SQS. Если APP сможет получить сообщение, он немедленно удалит его из SQS. Если APP не может получить сообщение (разбился), он может загружать сообщения из SQS при запуске и очищать очередь.
- AWS Лямбда-код как служба обмена сообщениями. Если код Lambda не работает, он может отправить сообщение в очередь SQS Dead Letter Queue, в противном случае будет оставаться чистой. Обработка обновлений кода Lamba слишком велик, было бы здорово решить эту проблему с помощью чистого AWS, если это возможно.
Идеальное решение для установки бесконечного таймаута для сообщения SNS, но похоже, что Amazon не поддерживает его.
Как вы думаете, а лучше всего решить эту проблему? Я что-то пропустил?
Если вы хотите положиться на решение, отличное от aws, вы можете использовать плагин pubnub w/message history (retention). – hjpotter92
Спасибо hjpotter92. Поскольку это высокозащищенное решение, я предпочитаю не отправлять какие-либо данные третьим лицам, кроме Amazon. –