說明及列出藍綠部署作業

本文說明如何列出及說明 Cloud SQL 藍綠部署作業、檢查連線詳細資料和設定差異,以及連線至綠色暫存環境,測試及驗證工作負載。

事前準備

如要列出或說明藍綠部署,並連線至綠色暫存執行個體,請確認您具備必要角色和資料庫憑證。

所需角色和權限

如要取得列出及說明藍綠部署所需的權限,請要求管理員在專案中授予您下列 IAM 角色:

  • Cloud SQL 檢視者 (roles/cloudsql.viewer)
  • Cloud SQL 編輯者 (roles/cloudsql.editor)
  • Cloud SQL 管理員 (roles/cloudsql.admin)

如果是自訂角色,請確認您具備下列權限:

  • cloudsql.blueGreenDeployments.get
  • cloudsql.blueGreenDeployments.list

如要連線至綠色暫存執行個體並執行測試查詢,您也需要來源執行個體上設定的資料庫使用者憑證。

如要進一步瞭解 Cloud SQL 中的 IAM 角色和權限,請參閱「角色和權限」。

總覽

您可以使用 describe 指令,在 Cloud SQL 藍綠部署作業的整個生命週期中,隨時監控及追蹤其狀態,包括初始佈建和暫存,以及完成切換。

描述藍綠部署作業可讓您瞭解下列事項:

  • 部署作業生命週期狀態:監控部署作業的即時狀態,瞭解作業在 PROVISIONING、SWITCHOVER_READY、SWITCHOVER_NOT_READY、SWITCHOVER_IN_PROGRESS 和 SWITCHOVER_COMPLETED 等狀態間的轉換情形。
  • 目標執行個體連線詳細資料:擷取綠色測試環境執行個體的專屬連線名稱和網路端點。資料庫管理員 (DBA) 和 QA 工程師可藉此連線應用程式、執行測試查詢,並驗證綠色執行個體的效能,不會影響藍色執行個體的即時正式版流量。
  • 複寫健康狀態和切換準備就緒:確認從藍色到綠色的持續邏輯複寫是否正常,並在發生問題時檢查診斷錯誤詳細資料。請注意,描述部署作業不會顯示複寫延遲。
  • 設定差異:以詳細檢視畫面要求時,請檢查藍色和綠色執行個體之間的資料庫版本、機器層級、儲存空間設定和高可用性設定,並進行並排比較 (diffs)。

列出藍綠部署作業

如要在專案中列出藍綠部署作業,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。

    前往 Cloud SQL 執行個體

  2. 在執行個體清單中,查看「藍綠部署作業 ID」欄,瞭解與執行個體相關聯的藍綠部署作業。屬於藍綠部署作業的執行個體,也會在執行個體名稱旁顯示角色標記 (Blue、Green、Old-blue 或 New-blue)。

gcloud

如要使用 gcloud 列出藍綠部署,請執行 blue-green-deployments list 指令:

gcloud beta sql blue-green-deployments list \
  --region=REGION

如要列出專案中所有區域的部署作業,請省略 --region 標記。

REST v1

如要使用 Cloud SQL Admin API 列出部署作業,請傳送 GET 要求至 blueGreenDeployments.list 方法:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
  locations/REGION/blueGreenDeployments

REST v1beta4

如要使用 Cloud SQL Admin API 列出部署作業,請傳送 GET 要求至 blueGreenDeployments.list 方法:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
  locations/REGION/blueGreenDeployments

說明藍綠部署

如要檢查部署狀態並取得綠色執行個體連線詳細資料,請說明部署作業:

控制台

  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。

    前往 Cloud SQL 執行個體

  2. 如要開啟「部署總覽」頁面,請執行下列任一操作:
    • 在「藍綠部署作業 ID」欄中,按一下部署作業 ID。
    • 按一下執行個體名稱開啟「總覽」頁面,然後在「藍綠部署狀態」資訊卡中,按一下「詳細資料」。
  3. 在「部署作業總覽」頁面中,查看「部署作業詳細資料」資訊卡,檢查部署作業的「狀態」、「來源執行個體」、「目標執行個體」、「目標執行個體端點」和「目標版本」,並查看「部署作業進度」資訊卡,檢查工作狀態。

gcloud

如要使用 gcloud 說明 Deployment,請執行 blue-green-deployments describe 指令:

gcloud beta sql blue-green-deployments describe DEPLOYMENT_NAME \
  --region=REGION

更改下列內容:

  • DEPLOYMENT_NAME:藍綠部署的名稱。
  • REGION:建立部署作業的 Google Cloud 區域。

REST v1

如要使用 Cloud SQL Admin API 說明部署作業,請將 GET 要求傳送至 blueGreenDeployments.get 方法:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments/DEPLOYMENT_NAME

REST v1beta4

如要使用 Cloud SQL Admin API 說明部署作業,請將 GET 要求傳送至 blueGreenDeployments.get 方法:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments/DEPLOYMENT_NAME

檢查狀態和連線詳細資料

在指令輸出內容中,確認部署狀態,並找出目標綠色執行個體的連線資訊:

name: projects/my-project/locations/us-central1/
  blueGreenDeployments/my-deployment
createTime: '2026-08-13T10:00:00.000Z'
state: SWITCHOVER_READY
sourceInstance: my-source-instance
switchoverTargetInstance: my-target-instance
requestedConfig:
  databaseVersion: MYSQL_8_4
deploymentMappings:
- source:
    connection: my-project:us-central1:my-source-instance
    dns: my-source-instance.123456789012.us-central1.sql.goog.
    instance: projects/my-project/instances/my-source-instance
    ipAddresses:
    - ipAddress: 10.0.0.1
      type: PRIMARY
  state: PROVISIONED
  target:
    connection: my-project:us-central1:my-target-instance
    dns: my-target-instance.123456789012.us-central1.sql.goog.
    instance: projects/my-project/instances/my-target-instance
    ipAddresses:
    - ipAddress: 10.0.0.2
      type: PRIMARY
  tasks:
  - type: PROVISION
    state: SUCCEEDED
    startTime: '2026-08-13T10:00:00.000Z'
    endTime: '2026-08-13T10:15:00.000Z'
deploymentTasks:
- type: PROVISION
  state: SUCCEEDED
  startTime: '2026-08-13T10:00:00.000Z'
  endTime: '2026-08-13T10:15:00.000Z'

查看回覆中的下列欄位:

  • name:部署作業的完整資源路徑,格式為 projects/PROJECT_ID/locations/REGION/blueGreenDeployments/DEPLOYMENT_NAME。
  • createTime:部署作業的建立時間戳記。
  • state:部署作業的整體生命週期狀態:
    • PROVISIONING:部署作業正在佈建綠色環境,並設定複製作業。
    • SWITCHOVER_READY:暫存完成、邏輯複製作業正常運作,且部署作業已準備好切換。請先確認此狀態,再執行測試。
    • SWITCHOVER_NOT_READY:部署作業尚未準備好切換。如需疑難排解,請參閱 errorDetail。
    • SWITCHOVER_IN_PROGRESS:切換作業正在執行。
    • SWITCHOVER_COMPLETED:切換作業順利完成,綠色執行個體現在是作用中的讀寫執行個體,負責處理正式版流量。
    • DELETING:正在刪除部署資源。
  • sourceInstance:原始藍色正式版執行個體的執行個體 ID。
  • switchoverTargetInstance:綠色暫存執行個體的執行個體 ID,在切換期間會成為正式版讀取和寫入執行個體。
  • requestedConfig:在建立時為目標執行個體設定的設定,例如主要版本升級的 databaseVersion。
  • errorDetail:診斷錯誤詳細資料,說明為何無法進行切換,或為何佈建或切換工作失敗。
  • deploymentMappings:部署作業中的來源和目標執行個體配對清單。針對每組配對,請檢查:
    • source:藍色執行個體的連線和網路詳細資料,包括執行個體資源路徑 (instance)、連線名稱 (connection)、DNS 主機名稱 (dns) 和 IP 位址 (ipAddresses)。
    • target:綠色執行個體的連線和網路詳細資料。使用目標 connection 名稱或 ipAddresses,將暫存應用程式和測試套件連線至綠色環境。
    • diffs:使用詳細檢視畫面時,藍色和綠色執行個體之間的設定差異。在預覽期間,系統不會顯示資料庫旗標變更。
    • state:配對節點的運作狀態 (例如 PROVISIONING、PROVISIONED、UPGRADING、UPGRADED、UPGRADE_FAILED、SWITCHOVER_IN_PROGRESS、SWITCHOVER_FAILED、SWITCHOVER_SUCCEEDED 或 DELETING)。
    • tasks:在這個節點上執行的部署作業的執行狀態、開始時間、結束時間和錯誤詳細資料。
  • deploymentTasks:所有節點的所有部署作業的合併清單,包括作業 type (PROVISION、UPGRADE、SWITCHOVER、DELETE 或 POST_SWITCHOVER_OPERATIONS)、state (PENDING、RUNNING、SUCCEEDED 或 FAILED)、startTime、endTime 和 errorMessage。

查看設定差異

根據預設,描述部署作業會傳回基本檢視畫面和核心中繼資料。 如要查看藍色和綠色執行個體之間的設定差異,請在 Google Cloud 控制台中查看設定差異,或使用 gcloud CLI 或 Cloud SQL Admin API 要求詳細檢視畫面:

控制台

  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。

    前往 Cloud SQL 執行個體

  2. 如要開啟執行個體的「總覽」頁面,請點選執行個體名稱。
  3. 在「藍綠部署作業狀態」資訊卡中,按一下「詳細資料」,開啟「部署作業總覽」頁面。
  4. 在「部署詳細資料」資訊卡中,按一下「查看設定差異」。
  5. 在「Instance Setting Differences」(執行個體設定差異) 對話方塊中,查看「Source」(來源) 和「Target」(目標) 執行個體之間的比較結果,然後按一下「Close」(關閉)。

gcloud

執行加上 --show-config-diff 旗標的 blue-green-deployments describe 指令:

gcloud beta sql blue-green-deployments describe DEPLOYMENT_NAME \
  --region=REGION \
  --show-config-diff

REST v1

使用 view=DETAILED 查詢參數,向 blueGreenDeployments.get 方法傳送 GET 要求:

GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments/DEPLOYMENT_NAME?view=DETAILED

REST v1beta4

使用 view=DETAILED 查詢參數,向 blueGreenDeployments.get 方法傳送 GET 要求:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/
  locations/REGION/
  blueGreenDeployments/DEPLOYMENT_NAME?view=DETAILED

查看設定差異

指定詳細檢視畫面時,回應會在 deploymentMappings 下的每個配對節點中包含 diffs 區段:

deploymentMappings:
- diffs:
  - field: database_version
    sourceValue: MYSQL_8_0
    targetValue: MYSQL_8_4
  - field: settings/tier
    sourceValue: db-custom-2-7680
    targetValue: db-custom-4-15360
  source:
    instance: projects/PROJECT_ID/instances/my-source-instance
  target:
    connection: PROJECT_ID:REGION:my-target-instance
    instance: projects/PROJECT_ID/instances/my-target-instance

「diffs」部分會醒目顯示來源和目標執行個體之間的屬性差異,例如:

  • database_version:藍色和綠色執行個體上的資料庫引擎版本。
  • settings/tier: 分配給執行個體的機型 (vCPU 和記憶體)。
  • edition:Cloud SQL 版本 (Cloud SQL Enterprise 版或 Cloud SQL Enterprise Plus 版)。
  • availability_type:高可用性 (HA) 設定 (ZONAL 或 REGIONAL)。
  • settings/data_disk_size_gb:儲存空間容量 (單位為 GB)。
  • settings/data_disk_type:儲存空間類型 (PD_SSD)。

開始測試功能工作負載前,請確認列出的所有變更都符合您規劃的部署規格。

連結及驗證應用程式工作負載

使用綠色執行個體的專屬連線字串,將應用程式或用戶端工具連線至該執行個體:

gcloud sql connect TARGET_INSTANCE_NAME --user=DB_USER

更改下列內容:

  • TARGET_INSTANCE_NAME:目標綠色執行個體的名稱。
  • DB_USER:資料庫使用者名稱。

請執行下列驗證步驟:

  • 執行整合測試:確認應用程式查詢和預存程序在綠色執行個體上執行時不會發生錯誤。
  • 檢查錯誤記錄:檢查 Cloud Logging 和 Cloud SQL 資料庫錯誤記錄,確認是否有已淘汰的語法警告或非預期的引擎錯誤。
  • 查看效能統計資料:監控綠色執行個體上的 CPU、記憶體和 I/O 指標,確保效能符合運作服務水準目標。

後續步驟