本頁面說明如何使用 Cloud Deploy 服務通知,包括如何訂閱通知。
Cloud Deploy 會使用 Pub/Sub 發布通知,用途如下:
方便您將 Cloud Deploy 與第三方工具和其他 Google 工具整合,例如工作流程支援單或測試基礎架構工具。
使用補充商業邏輯擴充 Cloud Deploy。
可用的主題
Cloud Deploy 會將訊息發布至下列 Google Pub/Sub 主題:
clouddeploy-resources對任何 Cloud Deploy 核心資源 (自動化、自訂目標類型、發布管道、工作執行、版本、推出、目標) 執行作業 (建立、更新、刪除) 時。
clouddeploy-operations- Cloud Deploy 算繪 Skaffold 設定時。
- Cloud Deploy 部署至目標時 (
Start、Succeed、Failure、Terminated(工作執行作業)、Cancelled(推出作業))。
clouddeploy-approvals- 當 Cloud Deploy 需要核准 (或拒絕) 推出作業時。
- 推出作業獲得核准或遭到拒絕時。
clouddeploy-advances- 當 Cloud Deploy 推出作業從一個階段推進至下一個階段時。
- 準備好要推進推出程序時。
您可以針對 Pub/Sub 訂閱項目使用推送或提取模型。
接收 Cloud Deploy 服務通知
如要接收 Cloud Deploy 服務通知,請按照下列步驟操作:
為專案啟用 Cloud Deploy API:
啟用 Pub/Sub API:
根據要接收的通知類型,建立一或多個 Pub/Sub 主題:
gcloud pubsub topics create clouddeploy-resources gcloud pubsub topics create clouddeploy-operations gcloud pubsub topics create clouddeploy-approvals gcloud pubsub topics create clouddeploy-advances如要進一步瞭解如何管理 Pub/Sub 主題,請參閱「建立主題」。
訂閱 Cloud Deploy 服務通知
您可以為推送訂閱和提取訂閱設定 Cloud Deploy 服務通知。如要瞭解如何為這些通知設定 Pub/Sub 訂閱項目,請參閱「選擇訂閱類型」。您也可以瞭解 Pub/Sub 用戶端程式庫,這有助於更輕鬆地開發訂閱者應用程式。
欄位值
本節列出 Cloud Deploy Pub/Sub 訊息中欄位的可能值。
適用於 Action
在這些通知中,Action 可能的值如下。
適用資源
CreateUpdateDelete
作業:
StartSucceedFailureTerminatedCancelled
如需核准:
RequiredApprovedRejected
預付款:
RequiredAdvanced
適用於 ResourceType
ResourceType 可能的值如下:
DeliveryPipelineTargetReleaseRolloutJobRun
範例訊息
下列範例顯示 Cloud Deploy 主題的幾種 Pub/Sub 訊息。
建立推送管道
以下是發布至 clouddeploy-resources 的 Pub/Sub 訊息範例,用來回應新 deliveryPipeline 的建立作業:
{
"ackId": "RFAGFixdRkhRNxkIaFEOT14jPzUgKEUQBQgUBXx9cEFMdVhddmhRDRlyfWByY11AAgVMVnldURsHaE5tdR_Wg6LHS0NVaF4TBgpGVX5fXx0IYVtedi_m7r_2wPXOXkAvOYXL6Mtpe735h9xvZiM9XxJLLD5-IzRFQV5AEkwoAURJUytDCypYEU4EISE-MD5FUw",
"message": {
"attributes": {
"Action": "Create",
"Resource": "projects/120123456789/locations/us-central1/deliveryPipelines/etest",
"ResourceType": "DeliveryPipeline",
"Location": "us-central1",
"DeliveryPipelineId": "etest",
"ProjectNumber": "120123456789",
},
"messageId": "2407836004659723",
"publishTime": "2021-05-17T21:24:48.204Z"
}
}
轉譯開始
以下是發布至 clouddeploy-operations 的 Pub/Sub 訊息範例,通知發行內容已完成算繪:
{
"ackId": "U0RQBhYsXUZIUTcZCGhRDk9eIz81IChFFwYIFAV8fXBBTHVeXHRoUQ0Zcn1gcmNfR1MLFlN5WFEaB2hObXUfioKix0tDVWheEwYKRVZ3W1kdBGFVXH0v_qD5rMP1zl5AKDnZyujLaXudkqxfZiM9XxJLLD5-PTNFQV5AEkw2BkRJUytDCypYEU4EISE-MD5F",
"message": {
"attributes": {
"Action": "Start",
"Resource": "projects/120123456789/locations/us-central1/deliveryPipelines/etest/releases/f2",
"ResourceType": "Release"
"Location": "us-central1",
"DeliveryPipelineId": "etest",
"ProjectNumber": "120123456789",
"ReleaseId": "f2",
},
"messageId": "2407805942699908",
"publishTime": "2021-05-17T21:28:04.201Z"
}
}
必須獲得核准
以下是發布至 clouddeploy-approvals 的 Pub/Sub 訊息範例,通知發布作業需要核准:
{
"ackId": "RVNEUAYWLF1GSFE3GQhoUQ5PXiM_NSAoRRILUxNRXHQBWhBpWF8aB1ENGXJ8ZnxtCRBVU0FWf1VbEQ16bVxti6C2rERfQXduWhQJBkBXd11aHQhoXF9dotnkpeTv2kFwYSuN8_7mSH_Mo6AYZiA9XBJLLD5-IzZFQV5AEkwoA0RJUytDCypYEU4EISE-MD4",
"message": {
"attributes": {
"Action": "Required",
"Rollout": "projects/120123456789/locations/us-central1/deliveryPipelines/etest/releases/f2/rollouts/rollout-123"
"ReleaseId": "f2",
"RolloutId": "rollout-123",
"TargetId": "prod",
"Location": "us-central1",
"ProjectNumber": "120123456789",
},
"messageId": "2407845492165003",
"publishTime": "2021-05-17T21:31:25.143Z"
}
}
進展至下一個推出階段
以下是發布至 clouddeploy-advances 的 Pub/Sub 訊息範例,通知推出作業已從一個階段進展至下一個階段:
{
"ackId": "RFAGFixdRkhRNxkIaFEOT14jPzUgKEUSAwVPAihdeTFXKkFZdWhRDRlyfWB9bV4UUFZMV38OURoHaE5tdR_z4ILjS0NVbVkQBApEUHldXhkEa1RcfC-a0fmv1OzMV0AvOaCoyO9pe77r3NluZiM9XhJLLD5-Jz1FQV5AEkwsCERJUytDCypYEU4EISE-MD5FUw",
"message": {
"attributes": {
"Action": "Advanced",
"Location": "us-central1",
"PhaseId": "stable",
"ProjectNumber": "120123456789",
"ReleaseId": "rollout-123",
"Rollout": "projects/120123456789/locations/us-central1/deliveryPipelines/etest/releases/f2/rollouts/rollout-123",
"RolloutId": "rollout-123",
"TargetId": "prod"
},
"messageId": "7335813725293809",
"publishTime": "2023-04-03T15:16:30.425Z"
}
}
在這則訊息中,PhaseId 代表推出作業已進入的階段。