Hua*_*Yin 2 amazon-sqs amazon-web-services amazon-cloudwatch
我们有 1 个 sqs 正在被 lambda 消耗,我们想知道在某个时间戳之后 sqs 中的所有消息是否都已被消耗。
例如,其他一些系统将从早上 6 点开始向 SQS 发送消息,而 lambda 需要 4 小时才能处理所有消息。我们想知道上午 10 点时,队列中的所有消息是否都已被消费。
而我们每天只需要检测一次sqs的深度即可。
有没有一种简单的方法可以在 cloudwatch 中设置警报来实现我们的用例?
有许多潜在的解决方案,例如使用 cloudwatch 规则触发 lambda 并检测队列的大小和发送指标。我们可以对指标发出警报,但这似乎很繁重
持续检查
ApproximateNumberOfMessagesVisible您可以针对队列的指标创建 Amazon CloudWatch 警报。
例如,如果您希望在过去一小时内队列不为空时收到通知,则可以在Min of ApproximateNumberOfMessagesVisible> 0 持续 60 分钟时创建警报。这表示过去一小时队列中的最小消息数大于零。
在特定时间检查
如果您想检查特定时间的队列长度,则需要使用Amazon CloudWatch Events在给定时间触发AWS Lambda 函数。
Lambda 函数可以调用get_queue_attributes()来检索ApproximateNumberOfMessages. 如果该值大于预期,Lambda 函数可以向Amazon SNS 主题发送消息。用户可以订阅该主题以接收电子邮件或短信通知。
| 归档时间: |
|
| 查看次数: |
1694 次 |
| 最近记录: |