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

如何在CloudFormation模板中定义CodeBuild失败通知的TopicPolicy

排查步骤

  • 订阅状态检查
    选择email作为订阅协议时,SNS会在资源创建后自动向填写的邮箱发送确认邮件,你需要点击邮件内的确认链接,将订阅状态从PendingConfirmation更新为Confirmed才会正常接收通知,未确认的订阅不会收到任何推送。
  • EventPattern匹配校验
    模板中事件规则写死了匹配的CodeBuild项目名为TestCodeBuildProject,如果你实际使用的构建项目名称和该值不一致,事件会匹配失败无法触发规则。
    你可以根据需求选择两种修改方案:
    1. 将项目名称改为参数动态传入,在Parameters块增加配置:
    CodeBuildProjectName:
      Type: String
      Description: 要监听失败事件的CodeBuild项目名称
    
    然后将EventPattern里的project-name值改为!Ref CodeBuildProjectName
    2. 移除project-name的匹配规则,监听当前账号下所有CodeBuild项目的失败事件
  • InputTransformer格式修正
    你的模板中InputTemplate字段额外包裹了一层无用的双引号,会导致事件转换失败,进而触发SNS推送失败,将该字段改为以下格式即可:
    InputTemplate: |
      Build '<build-id>' for build project '<project-name>' has reached the build status of '<build-status>'. 日志地址:<deep-link>
    
  • 规则触发日志校验
    前往AWS EventBridge控制台找到对应规则,查看监控指标的Invocations和FailedInvocations数据:
    1. 无Invocations数据:说明事件模式匹配失败,建议抓取一次实际的CodeBuild失败事件,核对detail字段和你写的匹配规则是否一致
    2. 存在FailedInvocations数据:说明规则触发成功,但推送SNS失败,可进一步查看规则的死信队列日志或者SNS的投递日志定位问题

补充说明

你模板中的SNS TopicPolicy已经正确授予了EventBridge服务sns:Publish权限,默认无需修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 15:06:07