Тревога, когда очередь SQS не пуста после определенного времени? - PullRequest
0 голосов
/ 18 апреля 2020

Вариант использования

У нас есть 1 кв., Который используется лямбда-выражением, и мы хотели бы знать, были ли все сообщения в кв. Использовались или нет после определенной отметки времени.

Например, некоторые другие системы начнут отправлять сообщения в SQS, начиная с 6 утра, и лямбда будет обрабатывать их в течение 4 часов. Мы хотели бы знать, что в 10 утра все сообщения в очереди были использованы или нет.
И нам нужно только определять глубину sqs один раз в день.

Вопросы.

Существует ли простой способ настройки будильника в cloudwatch для достижения нашего варианта использования?

Существует много потенциальных решений, таких как использование правила cloudwatch для запуска лямбды, определения размера очереди и отправки метри c. Мы можем подать сигнал тревоги на metri c, но это, кажется, тяжелый подъем

Любые отзывы приветствуются!

спасибо

1 Ответ

4 голосов
/ 18 апреля 2020

Непрерывная проверка

Вы можете создать сигнал тревоги Amazon CloudWatch в ApproximateNumberOfMessagesVisible metri c для очереди.

Например, если вы wi sh чтобы получать уведомления, когда очередь не была пуста в течение последнего часа, вы можете создать будильник, когда Мин. ApproximateNumberOfMessagesVisible> 0 в течение 60 минут . Это говорит о том, что наименьшее количество сообщений в очереди за прошедший час было выше нуля.

Проверка в указанное c время

Если вы хотите чтобы проверить длину очереди в определенное время, вам нужно будет использовать Amazon CloudWatch Events для запуска AWS лямбда-функции в данный момент времени.

лямбда функция может вызвать get_queue_attributes() для получения ApproximateNumberOfMessages. Если это больше, чем нужно, функция Lambda может отправить сообщение на Amazon SNS topi c. Пользователи могут подписаться на topi c, чтобы получать уведомления по электронной почте или SMS.

...