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

如何让Google Cloud Build不等待CDN缓存失效完成再结束构建

Cloud Build内置实现CDN缓存失效步骤异步执行的方案

你可以直接利用Cloud Build的**background步骤参数**来实现需求,完全不需要额外依赖Pub/Sub或Cloud Function,零额外成本,还能保证步骤按顺序触发但不阻塞构建流程。

具体配置方法

在你的cloudbuild.yaml中,把最后一步CDN缓存失效的步骤加上background: true标记即可。示例如下:

steps:
  # 你的前置步骤:npm脚本执行、GCS同步等
  - name: 'node:18'
    args: ['npm', 'run', 'build']
  - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
    args: ['gsutil', '-m', 'rsync', '-r', './dist', 'gs://your-bucket-name']
  
  # 异步执行的CDN缓存失效步骤
  - name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
    args: [
      'gcloud', 'compute', 'url-maps', 'invalidate-cdn-cache',
      'your-url-map-name',
      '--paths', '/file1.js', '/file2.css', # 替换为你的10个文件路径
      '--project', 'your-project-id'
    ]
    background: true

效果说明

  • 所有前置步骤会按顺序正常执行,只有当前置步骤全部完成后,才会启动这个后台的缓存失效步骤
  • Cloud Build不会等待这个后台步骤执行完成,前置步骤结束后直接标记构建成功并结束流程
  • 缓存失效操作会在后台持续执行,你可以在Cloud Build的构建详情日志中查看该步骤的执行状态和输出

注意事项

  • 确保缓存失效的命令是幂等的,避免重复执行带来的问题
  • 后台步骤的日志不会影响构建的成功状态,即使缓存失效过程中出现错误,已结束的构建也不会被标记失败(如果需要监控该步骤的失败状态,可以结合Cloud Build的日志导出功能做告警)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 05:31:38