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

是否可以自定义CodePipeline失败时发送的AWS Chatbot通知消息?

CodePipeline自定义Slack通知实现方案

你构思的SNS触发Lambda调用Slack Webhook的方案完全可行,可以覆盖你需要的所有信息传递需求,两种常用实现方式如下:

方案1:EventBridge + SNS + Lambda(更灵活,支持全流水线事件匹配)

  • 首先在EventBridge创建规则,匹配CodePipeline执行失败的事件类型,目标绑定你提前创建的SNS主题,该事件会自带源阶段对应的commit hash、关联的代码仓库地址等核心字段
  • 编写Lambda函数消费SNS消息,做两步处理:
    1. 从事件payload中提取commitId(即commit hash)、失败阶段名称、日志跳转链接等原生字段
    2. 调用对应代码托管平台的接口,用commit hash查询对应的提交者信息,结合你提前维护的团队成员「提交者邮箱/名称 - Slack用户ID」映射表,即可获取到需要@的用户ID
  • 按照Slack规定的消息格式组装内容,@用户直接使用<@Slack用户ID>的语法即可,调用Slack Webhook完成推送

方案2:CodeBuild内置后置步骤(更轻量,无需额外服务资源)

直接修改CodeBuild的buildspec.yml配置,在post_build阶段加失败判断逻辑:

  • 内置环境变量CODEBUILD_RESOLVED_SOURCE_VERSION可直接拿到commit hash
  • 执行git log -1 --pretty=format:'%an'命令直接获取当前提交的提交者名称,执行git log -1 --pretty=format:'%s'可拿到commit message
  • 失败时直接在build环境中发起请求调用Slack Webhook发送自定义通知即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:51:01