簡體   English   中英

如何在 us-central1 區域使用 curl 執行 gcloud 構建觸發器?

[英]How to execute gcloud build trigger using curl in us-central1 region?

Google Cloud Build I select Triggers -> Create Trigger中。 對於我使用us-central1 的區域。 事件: Webhook 事件

Webhook URL 預覽顯示以下 url:

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

當我嘗試curl時,我得到了:

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

這只發生在我在us-central1區域中創建觸發器時。 全球區域創建的觸發器工作正常。

我應該如何告訴cloudbuild.googleapis.com從區域us-central1尋找觸發器?

- - 更新 - -

這是我執行 webhook 的方式:

$ 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"
#   }
# }

$ 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"
#   }
# }

$ 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"
#   }
# }

我不清楚您要調用哪種方法。

您需要正確指定方法(見下文)和查詢字符串name值:

projects/{project}/locations/{location}/triggers/{trigger}

APIs Explorer是您查找Cloud Build的好朋友,然后:

更新
PROJECT="..."
LOCATION="..."
SECRET="..."
TRIGGER="..."

BASE="https://cloudbuild.googleapis.com/v1/projects/${PROJECT}/triggers/${TRIGGER}:webhook"
NAME="projects/${PROJECT}/locations/${LOCATION}/triggers/${TRIGGER}"

curl \
--request POST \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data-urlencode "name=${NAME}" \
--data-urlencode "secret=${SECRET} \
${BASE}
  '?name=projects%2Fx%2Flocations%2Fy%2Ftrigger%2Fz&secret=sec

這是從不同於全局的區域執行觸發器的方法:

curl https://cloudbuild.googleapis.com/v1/projects/$PROJECT/locations/$REGION/triggers/$TRIGGER:webhook \
    -d key=$KEY \
    -d secret=$SECRET \
    -d trigger=$TRIGGER \
    -d projectId=$PROJECT

另一種方式:

curl "https://cloudbuild.googleapis.com/v1/projects/$PROJECT/locations/$REGION/triggers/$TRIGGER:webhook?key=$KEY&secret=$SECRET&trigger=$TRIGGER&projectId=$PROJECT" -d {}

還有一種方式:

curl -X POST -H Content-Type:application/json "https://cloudbuild.googleapis.com/v1/projects/$PROJECT/locations/$REGION/triggers/$TRIGGER:webhook?key=$KEY&secret=$SECRET&trigger=$TRIGGER&projectId=$PROJECT"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM