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

如何在Cloud Build构建失败时向Google Pub/Sub主题发送消息?

实现Cloud Build构建失败时自动发送Pub/Sub消息的简便方案

直接用Cloud Build的post步骤就能实现类似finally的效果,不用在每个构建步骤后重复检查状态。post步骤会在所有主构建步骤执行完成后自动运行,不管主流程是成功还是失败,你只需要在这个步骤里判断构建状态,失败时发送Pub/Sub消息即可。

具体配置示例(cloudbuild.yaml)

steps:
  # 这里放你的正常构建步骤,比如镜像构建、测试等
  - name: 'gcr.io/cloud-builders/docker'
    args: ['build', '-t', 'gcr.io/你的项目ID/你的镜像名', '.']
  # 更多构建步骤...

# post步骤:主流程结束后必执行
post:
  - name: 'gcr.io/cloud-builders/gcloud'
    entrypoint: 'bash'
    args:
      - '-c'
      - |
        if [ "$BUILD_STATUS" = "FAILURE" ]; then
          gcloud pubsub topics publish projects/你的项目ID/topics/你的失败通知主题 --message="构建ID $BUILD_ID 失败,时间: $(date)"
        fi

关键说明

  • post是Cloud Build原生支持的步骤类型,无需额外配置,主步骤全部执行完后自动触发。
  • $BUILD_STATUS是Cloud Build自动注入的环境变量,值为SUCCESS或FAILURE,用来判断构建结果。
  • $BUILD_ID也是内置环境变量,代表当前构建的唯一ID,方便在消息里定位具体失败的构建任务。

权限配置

要让Cloud Build能发布Pub/Sub消息,需要给Cloud Build的服务账号添加Pub/Sub发布者权限:

gcloud projects add-iam-policy-binding 你的项目ID \
  --member="serviceAccount:你的项目编号@cloudbuild.gserviceaccount.com" \
  --role="roles/pubsub.publisher"

(注:项目编号可以通过gcloud projects describe 你的项目ID --format='value(projectNumber)'命令获取)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 17:07:05