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

如何在us-central1区域使用curl调用Cloud Build触发器?

解决Cloud Build区域Webhook触发器404/400问题

问题背景

在Google Cloud Build中创建us-central1区域的Webhook类型触发器时,系统预览给出的Webhook URL为:

https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/triggers/TRIGGER_NAME?key=XXXXXXXX&secret=XXXXXXXX

使用curl调用该URL时,返回404错误:

{
  "error": {
    "code": 404,
    "message": "triggerError spanner trigger (11111111111, TRIGGER_NAME) not found",
    "status": "NOT_FOUND"
  }
}

注:全局区域创建的触发器可正常使用,仅us-central1区域的触发器出现此问题,需解决API如何正确定位区域触发器的问题。

已尝试的调用方式

以下是已测试的curl调用及结果:

# 直接使用预览URL,返回404
$ curl https://cloudbuild.googleapis.com/v1/projects/{PROJECT}/triggers/hello-central1:webhook \
    -d key=xxx \
    -d secret=xxx
# 错误返回:
# {
#   "error": {
#     "code": 404,
#     "message": "triggerError spanner trigger (11111111111, hello-central1) not found",
#     "status": "NOT_FOUND"
#   }
# }

# 在URL路径中加入区域信息,返回400
$ curl https://cloudbuild.googleapis.com/v1/projects/{PROJECT}/locations/us-central1/triggers/hello-central1:webhook \
    -d key=xxx \
    -d secret=xxx
# 错误返回:
# {
#   "error": {
#     "code": 400,
#     "message": "Request contains an invalid argument.",
#     "status": "INVALID_ARGUMENT"
#   }
# }

# 在请求体中指定触发器完整名称,返回400
$ curl https://cloudbuild.googleapis.com/v1/projects/{PROJECT}/triggers/{TRIGGER}:webhook \
    -d name=projects/{PROJECT}/locations/us-central1/triggers/{TRIGGER} \
    -d key=xxx \
    -d secret=xxx
# 错误返回:
# {
#   "error": {
#     "code": 400,
#     "message": "Request contains an invalid argument.",
#     "status": "INVALID_ARGUMENT"
#   }
# }

正确解决方案

区域化的Cloud Build触发器需要使用对应区域的API端点,而非全局端点。具体操作:

  • 将全局端点cloudbuild.googleapis.com替换为区域专属端点:us-central1-cloudbuild.googleapis.com
  • URL路径保持与全局触发器一致,无需额外添加locations/us-central1

正确的curl调用示例:

$ curl https://us-central1-cloudbuild.googleapis.com/v1/projects/{PROJECT}/triggers/hello-central1:webhook \
    -d key=xxx \
    -d secret=xxx

原理说明

全局API端点cloudbuild.googleapis.com仅会查找部署在全局区域的触发器,而区域触发器的元数据存储在对应区域的服务节点中,必须通过区域专属端点才能正确寻址。Google Cloud多数区域化服务均采用[区域ID]-[服务名].googleapis.com的端点格式,Cloud Build遵循此规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:55:17