计划型Cloud Build触发器运行抛出404 NOT_FOUND错误如何排查
错误资源定位
从你提供的日志可以直接判断,NOT_FOUND指向的是HTTP请求的目标Cloud Build触发器资源,并非Cloud Scheduler作业本身:Scheduler作业能够正常触发并生成执行日志,说明作业定义是存在且生效的,错误来自调用Cloud Build API时目标资源不存在。
常见成因汇总
- 触发器ID填写错误:URL中携带的触发器ID
ca55b01d-f4e6-4b8b-b92b-b2e4f380788c和你项目下实际存在的Cloud Build触发器ID不一致,常见为复制ID时漏字符、多空格、拼写错误,可到Cloud Build控制台的触发器详情页核对正确ID。 - 区域级触发器调用域名错误:如果你创建的是区域级Cloud Build触发器,不能使用全局域名
cloudbuild.googleapis.com调用,需要补充区域前缀,对应australia-southeast1区域的触发器,调用URL应为https://australia-southeast1-cloudbuild.googleapis.com/v1/projects/myproject/locations/australia-southeast1/triggers/[你的触发器ID]:run,用全局域名调用区域级触发器会固定返回NOT_FOUND。 - 项目ID配置错误:URL中的
myproject必须填写GCP项目的全局唯一项目ID,不是自定义的项目显示名,二者不匹配会导致无法定位到对应项目下的触发器资源。 - 触发器状态异常:对应ID的触发器已被删除、或者处于禁用状态,调用时也会返回NOT_FOUND,可到Cloud Build触发器列表页确认资源状态。
- 权限配置导致的隐藏性返回:如果Scheduler作业的HTTP请求没有配置正确的OAuth 2.0认证,使用的服务账号没有
cloudbuild.triggers.run调用权限,GCP为了避免未授权用户探测资源存在性,也会返回NOT_FOUND而非权限错误,需要确认服务账号权限和请求认证配置是否正确。
内容的提问来源于stack exchange,提问作者JerryL
相关产品推荐
相关产品推荐

