本文說明如何在現有的 Compute Engine 執行個體中停用正常關機。如要進一步瞭解正常關機,包括如何略過個別停止或刪除作業的正常關機程序,請參閱「正常關機總覽」。
如果執行個體已啟用正常關機功能,您可以停用這項功能,以便執行下列操作:
加快停止或刪除作業,避免產生不必要的費用。
更新需要重新啟動的執行個體屬性。
事前準備
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上的分頁,瞭解如何使用範例:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。
gcloud
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
- 設定預設地區和區域。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。
必要的角色
如要取得在 Compute 執行個體中停用正常關機所需的權限,請要求管理員在專案中授予您「Compute 執行個體管理員 (v1) 」(roles/compute.instanceAdmin.v1) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備執行個體 compute.instances.update 權限,可停用運算執行個體中的正常關機程序。
在執行個體中停用正常關機
您可以在運算執行個體中停用正常關機,不必重新啟動執行個體。不過,執行個體正在正常關機 (PENDING_STOP) 時,您無法停用正常關機功能。
如要在執行個體中停用正常關機,請選取下列其中一個選項:
控制台
前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
在「名稱」欄中,按一下執行個體名稱即可查看詳細資料。
系統會開啟執行個體的詳細資料頁面,並選取「詳細資料」分頁。
按一下「Edit」(編輯)。
在「管理」部分,取消勾選「按適當流程關閉 VM」核取方塊。
按一下 [儲存]。
gcloud
如要在執行個體中停用正常關機,請使用 gcloud beta compute instances update 指令搭配 --no-graceful-shutdown 旗標:
gcloud beta compute instances update INSTANCE_NAME \
--no-graceful-shutdown \
--zone=ZONE
更改下列內容:
INSTANCE_NAME:執行個體的名稱。ZONE:執行個體所在的區域。
REST
建立空白的 JSON 檔案。
如要查看現有執行個體的屬性,請對 beta
instances.get方法發出GET要求:GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME更改下列內容:
PROJECT_ID:執行個體所在的專案 ID。ZONE:執行個體所在的區域。INSTANCE_NAME:現有執行個體的名稱。
在您於上個步驟建立的空白 JSON 檔案中,執行下列操作:
輸入
GET要求輸出內容中的執行個體屬性。找出
gracefulShutdown.enabled欄位,然後將其值變更為false:{ ... "scheduling": { ... "gracefulShutdown": { "enabled": false } }, ... }
如要更新執行個體,請對 beta
instances.update方法發出PUT要求。包含下列項目:在要求網址中加入
mostDisruptiveAllowedAction查詢參數。在要求主體中,納入您在先前步驟中建立及更新的 JSON 檔案中的執行個體屬性。
更新執行個體的
PUT要求類似於下列要求:PUT https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=ALLOWED_ACTION { ... "scheduling": { ... "gracefulShutdown": { "enabled": false } }, ... }將
ALLOWED_ACTION替換為下列其中一個值:NO_EFFECT:這項要求會檢查更新要求是否有效,以及資源是否可用,但不會更新執行個體。REFRESH:如果修改後的執行個體屬性不需要重新啟動執行個體,Compute Engine 就會更新執行個體。
如要進一步瞭解如何更新執行個體的屬性,請參閱「更新執行個體屬性」。