【问题标题】:How to filter SNS message sent by Elasticache?如何过滤 Elasticache 发送的 SNS 消息?
【发布时间】:2018-08-01 08:57:02
【问题描述】:

我需要使用 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"
}

【问题讨论】:

  • 我正在努力解决同样的问题。你找到解决办法了吗?
  • 我最终通过使用事件规则从 Pagerduty 端过滤了这些事件。

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


【解决方案1】:

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

所以基本上如果 elasticache 没有设置任何 MessageAttributes 则无法进行消息过滤

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

【讨论】:

  • 酷,我希望他们确实提供了更通用的过滤机制。
  • 我认为AWS更可行的选择是elasticache在它转储到sns的消息属性中填充消息类别
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-14
  • 1970-01-01
  • 2019-09-28
  • 1970-01-01
  • 2021-12-01
  • 1970-01-01
  • 2019-08-03
相关资源
最近更新 更多