本頁說明如何在支援的 Compute Engine 執行個體上手動啟動主機維護事件。這項功能可讓您啟動維護事件,以便控制執行個體的維護時機。這項功能適用於可能受到效能降低或停機時間影響的工作負載,您需要在特定時間開始維護期間。
手動啟動維護事件時,主機維護作業會立即開始。您無法指定維護事件的開始日期或時間。如果您未使用這項功能,維護事件就會在即將進行的維護通知中指定的時間發生。
如果您想先測試應用程式如何處理維護作業,可以模擬維護作業。
限制
您可以為使用下列機器類型的執行個體手動啟動主機維護事件:
加速器最佳化機器系列:
運算最佳化機器系列:
一般用途機器系列:
記憶體最佳化機器系列:
儲存空間最佳化機器系列:
事前準備
-
如果尚未設定,請先設定驗證機制。「驗證」是指驗證身分,以便存取 Google Cloud 服務和 API 的程序。如要從本機開發環境執行程式碼或範例,請選取下列任一選項,以便對 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
-
如要取得運算執行個體的相關資訊,請按照下列步驟操作:
compute.instances.get
INSTANCE_NAME
:運算執行個體的名稱。ZONE
:執行個體所在的區域。PROJECT_NAME
:專案名稱ZONE
:運算執行個體所在的可用區INSTANCE_NAME
:執行個體名稱- 瞭解如何模擬主機維護事件。
- 瞭解如何取得即時遷移通知。
- 瞭解如何設定主機維護通知的快訊。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
詳情請參閱 Google Cloud 驗證說明文件中的「驗證以使用 REST」。
必要的角色
如要取得管理 VM 維護作業所需的權限,請要求管理員為您授予專案的 Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) 身分與存取權管理角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。這個預先定義的角色具備管理虛擬機器維護作業所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要管理 VM 維護作業,您必須具備下列權限:
手動啟動主機維護事件
Compute Engine 會透過多種方式傳送即將進行的維護作業通知。您可以根據通知中的資訊,決定手動啟動維護事件的時間範圍。
查看通知資訊
您可以透過下列任一方式查看維護作業事件通知:
如果主機維護事件通知包含
canReschedule=True
和maintenanceStatus=Pending
,您可以選擇在所選時間開始維護,或是等待windowStartTime
指定的時間執行維護事件。如果沒有收到通知,且您嘗試手動啟動維護事件,系統會顯示以下訊息:
There is no reschedulable upcoming maintenance.
這則訊息表示沒有排定維護事件,因此不需要採取任何行動。
開始維護事件
你可以在自己選擇的時間開始執行主機維護作業,而無須等到預定時間。使用 Google Cloud CLI 或 REST 觸發維護事件,即可立即開始維護作業。
gcloud
如要啟動維護事件,請使用
compute instances perform-maintenance
指令。輸入指令後,主機維護作業就會立即開始。gcloud compute instances perform-maintenance INSTANCE_NAME \ --zone=ZONE
更改下列內容:
回應如下所示:
resourceStatus: upcomingMaintenance: canReschedule: false latestWindowStartTime: '2025-01-15T19:57:17Z' maintenanceStatus: ONGOING type: SCHEDULED windowEndTime: '2025-01-15T23:57:11Z' windowStartTime: '2025-01-15T19:57:16Z'
在回應中,
canReschedule
會設為false
,而maintenanceStatus
會設為ONGOING
,表示主機維護作業正在進行中。REST
如要啟動維護事件,請使用
instances.performMaintenance
方法建構POST
要求。POST: https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/INSTANCE_NAME/performMaintenance
更改下列內容:
回應的形式如下所示:
upcomingMaintenance:{ "canReschedule":false "latestWindowStartTime": "2023-12-01T19:00:01Z" "maintenanceStatus":"ONGOING" "type":"SCHEDULED" "windowEndTime": "2023-12-01T22:00:00Z" "windowStartTime": "2023-12-01T19:00:00Z" }
在回應中,
canReschedule
會設為false
,而maintenanceStatus
會設為ONGOING
,表示主機維護作業正在進行中。後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-06-16 (世界標準時間)。
-