You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS CLI查询过滤CloudWatch SNS指标返回空结果问题排查

问题根因

你遇到的空返回问题由两个原因导致:

  • Shell引号冲突:外层使用单引号包裹--query参数,内部过滤逻辑Name=='TopicName'再次使用单引号,会被Shell识别为提前闭合外层参数,实际传给JMESPath的查询语句被截断,无法匹配到结果。
  • 嵌套数组未处理:原接口返回的Dimensions是嵌套在每一条Metric下的数组,未做扁平化处理会导致结果被多余的数组层级包裹。

正确查询命令

使用反引号包裹JMESPath里的字符串字面量避免引号冲突,同时用管道符扁平化结果:

aws cloudwatch list-metrics \
  --namespace 'AWS/SNS' \
  --metric-name 'NumberOfMessagesPublished' \
  --query 'Metrics[*].Dimensions[?Name==`TopicName`].Value | []' \
  --output text

执行后会直接输出近6小时有发布活动的SNS主题名称纯文本列表,可直接写入文件做去重累计。

闲置SNS主题排查优化方案

你当前用cron累计活跃列表的方案可行,也可以参考以下更高效的方案:

  • 先调用aws sns list-topics拿到全量主题ARN,再批量调用CloudWatch GetMetricData接口查询过去30天内各主题的NumberOfMessagesPublished累计值,一次查询即可拿到全量活跃数据,无需定时累计,也不会遗漏间隔期的活动。
  • 对于无订阅且长期无发布记录的主题,也可以直接通过SNS的get-topic-attributes接口查看SubscriptionsConfirmed、CreatedTimestamp等属性做二次校验,避免误删临时闲置的合法主题。

内容的提问来源于stack exchange,提问作者Jack-of-some

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.12 16:33:03