AWS MQ 触发器会自动禁用,如果触发器在一个小时内重试了五次并且每次都失败了。一般来说,这是由于 AWS MQ 上游应用程序出现故障或没有消费者导致的。
要解决此问题,需要检查 AWS MQ 上游应用程序并启动消费者。如果仍然出现问题,则可以通过在 AWS MQ 队列上创建 CloudWatch alarms 来监视队列的消息流量并检测潜在的问题。以下是创建 CloudWatch alarms 的示例代码:
aws cloudwatch put-metric-alarm \
--alarm-name MQ-Message-Backlog \
--alarm-description "Number of messages backlogged in the queue." \
--metric-name ApproximateNumberOfMessagesVisible \
--namespace AWS/SQS \
--statistic Sum \
--period 300 \
--threshold 100 \
--comparison-operator GreaterThanOrEqualToThreshold \
--dimensions Name=QueueName,Value=my-queue \
--evaluation-periods 2 \
--alarm-actions arn:aws:sns:us-east-1:1234:alert-email \
--ok-actions arn:aws:sns:us-east-1:1234:alert-email
此示例创建一个名为“MQ-Message-Backlog”的云监控警报,当队列中累积的消息数量大于或等于100时触发警报。可以使用 SNS 主题将警报发送到指定的电子邮件地址。
请注意,上述代码仅供参考,必须根据您的应用程序和环境进行修改,以便在满足您的特定需求时执行正确的操作。