將 Cloud Deploy 與其他系統整合

您可以將 Cloud Deploy 與其他仰賴的軟體提交系統整合。本頁面說明如何將 Cloud Deploy 與下列項目整合:

  • 測試工具
  • 工作流程管理

請參閱「整合 CI 系統」,瞭解如何透過 CI 管道呼叫 Cloud Deploy。

事前準備

本頁的操作說明假設您已符合下列條件:

與自動化測試整合

您可以使用 Cloud Deploy 與 Pub/Sub 整合測試與發布管道,以便自動提昇版本,實現持續性發布。

您也可以在推行計畫中使用註解,提供測試結果的連結。詳情請參閱「在 Cloud Deploy 中使用標籤和註解」。

使用 Pub/Sub 自動進行升級

  1. 監聽 clouddeploy-operations 主題中的 Pub/Sub 訊息

    訊息包含下列屬性:

    • Action: SUCCEED
    • ResourceType: Rollout
    • Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...
  2. 收到部署成功的通知後,請在已部署的應用程式上執行測試。

  3. 測試成功後,請呼叫 Cloud Deploy,自動將測試結果提交至下一個階段:

    gcloud deploy releases promote RELEASE_NAME \
    --delivery-pipeline=PIPELINE_NAME \
    --region=REGION \
    --annotations=KEY=VALUE,...
    

    其中:

    • RELEASE_NAME

      是版本名稱。必須提供這個值。

    • PIPELINE_NAME

      是管理此版本的推送管道名稱。這是必要值。

    • REGION

      是管道執行的地區。如果您已設定屬性 deploy/region,可以省略這個旗標。

    • KEY=VALUE,...

      是一或多個以半形逗號分隔的鍵/值字串組合清單,可包含測試結果和其他測試資訊。範例如下:

      gcloud deploy releases promote --annotations="from_target=test,status=stable"

      推出作業上的註解無法變更,因此如果您新增狀態註解,之後就無法在同一推出作業中更新該狀態。

使用註解提供測試結果存取權

如果您有指向可存取測試結果的網址,可以使用 --annotations 標記,將該網址做為部署作業的註解。範例如下:

gcloud deploy releases promote --delivery-pipeline=my-demo-app-1 --region=us-central1 --project=my-demo-app-1-project --release=test-release-001 --annotations="test_results_url=https://example.com/results/my-demo-app-test-results-dev"

詳情請參閱「在 Cloud Deploy 中使用標籤和註解」。

整合第三方工作流程管理服務

Cloud Deploy 會將作業訊息發布至 Pub/Sub。您的工作流程管理工具可以訂閱這些 Pub/Sub 主題,並用於觸發特定工作流程。

核准

當需要核准才能推出時,clouddeploy-approvals 主題會通知您的系統。接著,您的外部工作流程系統就能發揮神奇功效,取得核准,然後呼叫 gcloud deploy rollouts approve

發出 rollouts approve 指令的帳戶必須具備預先定義的 IAM 角色 roles/clouddeploy.approver

如要設定外部核准工作流程,請按照下列步驟操作:

  1. 須經核准才能推送至目標

    在該目標的定義中加入 requireApproval: true

  2. 如要使用訊息,請訂閱 clouddeploy-approvals Pub/Sub 主題,並設定工作流程管理系統。

  3. 當工作流程管理系統收到來自 clouddeploy-approvals 主題的訊息 (其中包含 "Action": "Required") 時,就會啟動核准工作流程,並根據貴機構的要求進行設定。

    這則訊息也會參照要核准的推播內容,格式如下:

    Resource: projects/.../locations/.../deliveryPipelines/.../releases/.../rollouts/...

    核准工作流程的輸出內容是推出作業的核准或拒絕

  4. 您的工作流程管理系統會以以下指令的形式,將核准或拒絕結果傳回至 Cloud Deploy:

    核准指令如下:

    gcloud deploy rollouts approve ROLLOUT \
    --delivery-pipeline=PIPELINE_NAME \
    --region=REGION \
    --release=RELEASE_NAME
    

    拒絕推出的指令如下:

    gcloud deploy rollouts reject ROLLOUT \
    --delivery-pipeline=PIPELINE_NAME \
    --region=REGION \
    --release=RELEASE_NAME
    

    其中:

    • ROLLOUT

      是要求核准的推出作業名稱。

    • PIPELINE_NAME

      是管理應用程式部署作業的推送管道。

    • RELEASE_NAME

      是與這項推出作業相關聯的版本名稱。

    • REGION

      是推送管道執行的區域。

範例如下:

gcloud deploy rollouts approve test-rollout --delivery-pipeline=web-app --release=test-release --region=us-central1