本文說明如何設定執行個體,在停止或刪除時略過客體 OS 關機程序,藉此縮短 Compute Engine 執行個體的關機時間。
如果您將執行個體設定為在停止或刪除時略過客體 OS 關機程序,當執行個體狀態變更為 STOPPING
時,Compute Engine 會立即關閉客體 OS。加快停止或刪除執行個體的速度,以便更快釋出配額或資源。如要進一步瞭解執行個體在停止或刪除期間經歷的階段,包括清除客體 OS 關機的預設間隔,請參閱停止作業。
事前準備
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,可以選取下列任一選項,向 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
gcloud
-
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
- Set a default region and zone.
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。 安裝完成後,執行下列指令初始化 Google Cloud CLI:
gcloud init
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。
必要的角色
如要取得設定執行個體以略過客層 OS 關機程序所需的權限,請要求管理員授予您專案的Compute 執行個體管理員 (v1) (
roles/compute.instanceAdmin.v1
) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。這個預先定義的角色具備將執行個體設定為略過客層 OS 關機的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要將執行個體設為略過客層 OS 關機程序,您必須具備下列權限:
-
如何建立執行個體:
- 專案的
compute.instances.create
權限 - 如要使用自訂映像檔建立 VM,請按一下映像檔上的
compute.images.useReadOnly
。 - 如要使用快照建立 VM,請按一下快照上的
compute.snapshots.useReadOnly
- 如要使用執行個體範本建立 VM,請按一下執行個體範本上的
compute.instanceTemplates.useReadOnly
- 如要將舊版網路指派給 VM:專案的
compute.networks.use
- 如要為 VM 指定靜態 IP 位址:專案的
compute.addresses.use
權限 - 使用舊版網路時,如要將外部 IP 位址指派給 VM,請在專案中設定
compute.networks.useExternalIp
- 為 VM 指定子網路:專案或所選子網路的
compute.subnetworks.use
- 使用虛擬私有雲網路時,如要將外部 IP 位址指派給 VM,請在專案或所選子網路上擁有
compute.subnetworks.useExternalIp
權限 - 如要為專案中的 VM 設定 VM 執行個體中繼資料,請執行下列指令:
compute.instances.setMetadata
- 如要為 VM 設定標記,請在 VM 上按一下
compute.instances.setTags
- 如要為 VM 設定標籤,請在 VM 上執行下列步驟:
compute.instances.setLabels
- 如要設定 VM 使用的服務帳戶,請在 VM 上執行
compute.instances.setServiceAccount
- 如要為 VM 建立新磁碟,請取得專案的
compute.disks.create
權限 - 如要以唯讀或讀寫模式連接現有磁碟,請對磁碟擁有
compute.disks.use
權限 - 如要以唯讀模式連接現有磁碟,請對磁碟擁有
compute.disks.useReadOnly
權限
- 專案的
-
如要建立執行個體範本:
按一下專案的
compute.instanceTemplates.create
-
如要更新執行個體:
執行個體上的
compute.instances.update
設定執行個體,略過客體 OS 關機程序
如要設定 Compute 執行個體,在停止或刪除執行個體時略過訪客作業系統關機程序,請使用下列其中一種方法:
在現有執行個體中設定客體 OS 關機
只有在執行個體已停止 (
TERMINATED
) 時,才能將運算執行個體設為略過客層 OS 關機程序。如要設定執行個體略過訪客 OS 關機程序,請選取下列其中一個選項:
gcloud
如果尚未停止執行個體,請停止執行個體。
如要將執行個體設定為略過客層 OS 關機程序,請使用
gcloud beta compute instances set-scheduling
指令搭配--skip-guest-os-shutdown
旗標:gcloud beta compute instances set-scheduling INSTANCE_NAME \ --skip-guest-os-shutdown \ --zone=ZONE
更改下列內容:
INSTANCE_NAME
:執行個體的名稱。ZONE
:執行個體所在的區域。
REST
如果尚未停止執行個體,請停止執行個體。
如要設定執行個體略過訪客 OS 關機程序,請對 beta
instances.setScheduling
方法發出POST
要求。在要求主體中加入skipGuestOsShutdown
欄位,並將其設為true
:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/setScheduling { "skipGuestOsShutdown": true }
如要進一步瞭解如何更新執行個體,請參閱更新執行個體屬性。
在建立執行個體時設定客體 OS 關機
如要建立設定為略過訪客 OS 關機的運算執行個體,請選取下列任一選項:
gcloud
如要建立設定為略過客層 OS 關機的執行個體,請使用
gcloud compute instances create
指令搭配--skip-guest-os-shutdown
旗標:gcloud compute instances create INSTANCE_NAME \ --machine-type=MACHINE_TYPE \ --skip-guest-os-shutdown \ --zone=ZONE
更改下列內容:
INSTANCE_NAME
:執行個體的名稱。MACHINE_TYPE
:執行個體使用的機器類型。ZONE
:要建立執行個體的區域。
REST
如要建立設定為略過客層 OS 關機的執行個體,請對
instances.insert
方法發出POST
要求。在要求主體中,加入設為true
的skipGuestOsShutdown
欄位:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "INSTANCE_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "scheduling": { "skipGuestOsShutdown": true } }
更改下列內容:
PROJECT_ID
:您要建立執行個體的專案 ID。ZONE
:要建立執行個體的區域。INSTANCE_NAME
:執行個體的名稱。MACHINE_TYPE
:執行個體使用的機器類型。IMAGE_PROJECT
:包含圖片的圖片專案,例如debian-cloud
。如要進一步瞭解支援的映像檔專案,請參閱「公開映像檔」。IMAGE
:指定下列其中一項:
如要進一步瞭解如何建立執行個體,請參閱「建立及啟動 Compute Engine 執行個體」。
大量建立執行個體時設定訪客 OS 關機
如要大量建立設定為略過客層 OS 關機的運算執行個體,請選取下列任一選項:
gcloud
如要大量建立執行個體,並設定略過客層 OS 關機程序,請使用
gcloud compute instances bulk create
指令搭配--skip-guest-os-shutdown
旗標。舉例來說,如要使用單一可用區中的名稱模式,大量建立執行個體,請執行下列指令:
gcloud compute instances bulk create \ --count=COUNT \ --machine-type=MACHINE_TYPE \ --name-pattern="NAME_PATTERN" \ --skip-guest-os-shutdown \ --zone=ZONE
更改下列內容:
COUNT
:要建立的執行個體數量。MACHINE_TYPE
:執行個體使用的機器類型。NAME_PATTERN
:執行個體的名稱模式。如要取代執行個體名稱中的數列,請使用一連串井字號 (#
) 字元。舉例來說,如果您使用instance-#
做為名稱模式,Compute Engine 會產生名稱開頭為instance-1
、instance-2
的執行個體,並持續以遞增模式命名,直到您在COUNT
中指定的執行個體數量為止。ZONE
:要建立執行個體的區域。
REST
如要大量建立執行個體,並設定略過客層 OS 關機程序,請對
instances.bulkInsert
方法發出POST
要求。在要求主體中,加入設為true
的skipGuestOsShutdown
欄位。舉例來說,如要在單一區域中大量建立使用名稱模式的執行個體,請發出下列
POST
要求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { "count": COUNT, "namePattern": "NAME_PATTERN", "instanceProperties": { "machineType": "MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "scheduling": { "skipGuestOsShutdown": true } } }
更改下列內容:
PROJECT_ID
:您要大量建立執行個體的專案 ID。ZONE
:要建立執行個體的區域。COUNT
:要建立的執行個體數量。NAME_PATTERN
:執行個體的名稱模式。如要取代執行個體名稱中的數列,請使用一連串井字號 (#
) 字元。舉例來說,如果您使用instance-#
做為名稱模式,Compute Engine 會產生名稱開頭為instance-1
、instance-2
的執行個體,並持續以遞增模式命名,直到您在COUNT
中指定的執行個體數量為止。MACHINE_TYPE
:執行個體使用的機器類型。IMAGE_PROJECT
:包含圖片的圖片專案,例如debian-cloud
。如要進一步瞭解支援的映像檔專案,請參閱「公開映像檔」。IMAGE
:指定下列其中一項:
如要進一步瞭解如何大量建立執行個體,請參閱大量建立執行個體。
建立執行個體範本時設定客體 OS 關機
建立執行個體範本並設定為在停止或刪除運算執行個體時略過客層 OS 關機程序後,您可以使用該範本執行下列操作:
您可以設定代管執行個體群組 (MIG) 中的執行個體,在停止或刪除時略過客層 OS 關機程序,方法如下:
如要建立設定為略過訪客 OS 關機的執行個體範本,請選取下列任一選項:
gcloud
如要建立設定為略過客層 OS 關機的執行個體範本,請使用
gcloud compute instance-templates create
指令搭配--skip-guest-os-shutdown
旗標。舉例來說,如要建立地區執行個體範本,並指定略過客層 OS 關機程序,請執行下列指令。如要建立全域執行個體範本,請使用相同指令,但不要加入
--instance-template-region
旗標。gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --instance-template-region=REGION \ --machine-type=MACHINE_TYPE \ --skip-guest-os-shutdown
更改下列內容:
INSTANCE_TEMPLATE_NAME
:執行個體範本的名稱。REGION
:要建立執行個體範本的區域。MACHINE_TYPE
:要在執行個體範本中指定的機器類型。
REST
如要建立設定為略過客層 OS 關機的執行個體範本,請向下列其中一種方法提出
POST
要求:如要建立全域執行個體範本,請使用
instanceTemplates.insert
方法。如要建立地區執行個體範本:
regionInstanceTemplates.insert
方法
在要求主體中,加入設為
true
的skipGuestOsShutdown
欄位。舉例來說,如要建立地區執行個體範本,並指定略過客層 OS 關機程序,請發出下列
POST
要求:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default" } ], "scheduling": { "skipGuestOsShutdown": true } } }
更改下列內容:
PROJECT_ID
:您要建立執行個體範本的專案 ID。REGION
:要建立執行個體範本的區域。INSTANCE_TEMPLATE_NAME
:執行個體範本的名稱。IMAGE_PROJECT
:包含圖片的圖片專案,例如debian-cloud
。如要進一步瞭解支援的映像檔專案,請參閱「公開映像檔」。IMAGE
:指定下列其中一項:MACHINE_TYPE
:要在執行個體範本中指定的機器類型。
如要進一步瞭解如何建立執行個體範本,請參閱建立執行個體範本。
查看客體 OS 關機設定
您可以檢查 Compute Engine 是否在停止或刪除運算執行個體時,略過訪客 OS 關機程序。
如要在執行個體中查看訪客 OS 關機時間,請選取下列任一選項:
gcloud
如要查看執行個體的詳細資料,以及是否略過客層 OS 關機程序,請使用
gcloud compute instances describe
指令:gcloud compute instances describe INSTANCE_NAME \ --zone=ZONE
更改下列內容:
INSTANCE_NAME
:執行個體的名稱。ZONE
:執行個體所在的區域。
如果您將執行個體設為略過訪客 OS 關機程序,輸出內容會包含設為
true
的skipGuestOsShutdown
欄位,如下列範例所示:... scheduling: automaticRestart: true skipGuestOsShutdown: true onHostMaintenance: MIGRATE preemptible: false provisioningModel: STANDARD ...
否則,如果缺少
skipGuestOsShutdown
欄位或設為false
,客體 OS 會使用預設關機時間。REST
如要查看執行個體的詳細資料,以及執行個體是否略過客層 OS 關機程序,請對
instances.get
方法發出GET
要求:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
更改下列內容:
PROJECT_ID
:執行個體所在的專案 ID。ZONE
:執行個體所在的區域。INSTANCE_NAME
:執行個體的名稱。
如果您將執行個體設為略過訪客 OS 關機程序,輸出內容會包含設為
true
的skipGuestOsShutdown
欄位,如下列範例所示:{ ... "scheduling": { "automaticRestart": true, "skipGuestOsShutdown": true, "onHostMaintenance": "MIGRATE", "preemptible": false, "provisioningModel": "STANDARD" }, ... }
否則,如果缺少
skipGuestOsShutdown
欄位或設為false
,客體 OS 會使用預設關機時間。後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-09-18 (世界標準時間)。
-