如何过滤Elasticache发送的SNS消息?

时间:2018-08-01 08:57:03

标签: amazon-web-services amazon-sns amazon-elasticache

我需要使用SNS + Pagerduty监视Elasticache复制组。 问题在于,Elasticache将所有事件发送到已配置的sns arn,而没有区分是ElastiCache:SnapshotFailed之类的严重事件还是ElastiCache:CacheClusterParametersChanged之类的正常事件。

我尝试将过滤器策略附加到该主题的订阅,但是不幸的是,过滤仅适用于包含以下内容的邮件  https://docs.aws.amazon.com/sns/latest/dg/message-filtering.html中提到的“ MessageAttributes”字段。所以它对我不起作用。

Elasticache发送的消息如下:

{
  "Type" : "Notification",
  "MessageId" : "93cc4ffe-bbd7-521e-8dd1-1c25d437dc1b",
  "TopicArn" : "arn:aws:sns:eu-central-1:custid:redis-monitor-a",
  "Message" : "{\"ElastiCache:SnapshotComplete\":\"redis-a-001\"}",
  "Timestamp" : "2018-08-01T08:21:52.610Z",
  "SignatureVersion" : "1",
  "Signature" : "aaabbbccc",
  "SigningCertURL" : "xxxbbbzzz",
  "UnsubscribeURL" : "yyyzzzaaa"
}

1 个答案:

答案 0 :(得分:0)

正如您正确指出的那样,SNS消息过滤基于消息属性起作用。

因此,基本上,如果Elasticache没有设置任何MessageAttributes,则无法进行消息过滤

剩下的唯一选择是阅读订户中的消息,然后忽略不需要的消息