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

AWS SNS过滤CodePipeline消息配置后收不到通知如何解决

问题根因

配置的过滤规则无法命中任何消息,核心原因有两点:

  • 字段路径写错了:CodePipeline经CodeStar Notifications推送到SNS的事件结构里,执行状态不是顶层的status字段,而是嵌套在detail对象下的state字段,你写的顶层status在实际推送的消息中根本不存在,所有消息都会被过滤拦截。
  • 字段值匹配规则错误:事件里的状态值是全大写枚举值,成功对应SUCCEEDED、失败对应FAILED,你配置的全小写failed/succeeded和实际值完全不匹配,就算字段路径写对了也收不到消息。
正确配置方法

把SNS订阅的过滤策略替换为下面的内容即可:

{
  "detail.state": [
    "SUCCEEDED",
    "FAILED"
  ]
}

配置说明:

  • SNS原生支持用.分隔的字段路径匹配嵌套属性,上述规则会精准筛选出pipeline执行成功、失败的终态通知。
  • 所有命中该规则的CodePipeline事件必然携带detail.pipeline字段(即pipeline名称),不需要额外加字段校验,收到的邮件正文会自动带上对应的pipeline名称,完全匹配你的需求。
  • 规则生效后,pipeline执行过程中的启动、执行中、暂停等中间状态通知会被自动过滤,不会再收到大量无关邮件。

如果要严格校验消息必须携带pipeline名称,也可以用带存在性判断的策略,进一步避免异常消息推送:

{
  "detail.state": [
    "SUCCEEDED",
    "FAILED"
  ],
  "detail.pipeline": [
    {"exists": true}
  ]
}

内容的提问来源于stack exchange,提问作者damini chopra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 16:21:33