本文說明如何在 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 管理員 (roles/compute.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備修改預留項目所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
必須具備下列權限,才能修改預留項目:
-
如要修改預留項目的自動刪除選項、預留項目的耗用類型或共用類型,或是 Vertex AI 工作是否能耗用附加 GPU 的運算執行個體預留項目,請執行下列操作:
compute.reservations.update專案 -
如要修改預留項目中的 Compute Engine 執行個體數量:
compute.reservations.resize專案
修改預留項目
請根據您要在預留項目中修改的屬性,使用下列其中一種方法。如要變更下列清單未提及的房源,請建立含有選定更新內容的新預訂,然後刪除不再需要的原始預訂。
如要增加或減少預訂中的預留運算執行個體數量,請修改預訂中的預留運算執行個體數量。
如要在單一專案預留項目和共用預留項目之間切換,請修改預留項目的共用類型。
如要新增或移除可使用共用預留項目的用戶專案,請修改共用預留項目中的用戶專案。
如要允許或禁止 Vertex AI 中的自訂訓練工作或預測工作使用 GPU 執行個體的預留項目,請修改預留項目的共用政策。
如要啟用或停用自動刪除預留項目功能,或是變更 Compute Engine 自動刪除預留項目的日期和時間,請修改預留項目的自動刪除設定。
修改預留項目中的預留運算執行個體數量
您可以增加或減少預留項目中的預留運算執行個體數量。不過,修改運算執行個體數量前,請考量下列事項,以免發生錯誤:
如要增加任何預留項目的運算執行個體數量,請確認您符合下列條件:
您不得超過預留項目的運算執行個體數量上限。
專案必須有足夠的未使用配額,才能預留額外資源。如要提高配額,請參閱「查看及管理配額」。
預留項目所在的可用區必須有足夠的可用資源。否則,修改要求會失敗,並顯示資源可用性錯誤。如要排解這類錯誤,請參閱「排解資源可用性錯誤」。
如要減少指定目標預留項目中的運算執行個體數量,請確認使用預留項目的運算執行個體數量不超過新的較小數量。如果是,請對超過新數量的運算執行個體採取下列任一做法:
如要修改預留項目中預留的運算執行個體數量,請選取下列其中一個選項:
控制台
前往 Google Cloud 控制台的「Reservations」(預留項目) 頁面。
在「On-demand reservations」(隨需預留項目) 分頁 (預設) 的「Name」(名稱) 欄中,按一下要修改的預留項目名稱。系統會開啟顯示預訂詳細資料的頁面。
按一下「Edit」(編輯)。
在「Number of VM instances」(VM 執行個體數量) 欄位中,輸入要預留的更新運算執行個體數量。
按一下「儲存」確認操作。
gcloud
如要修改預留項目中預留的運算執行個體數量,請使用 gcloud compute reservations update 指令。
gcloud compute reservations update RESERVATION_NAME \
--vm-count=NUMBER_OF_VMS \
--zone=ZONE
更改下列內容:
RESERVATION_NAME:預訂名稱。NUMBER_OF_VMS:要預留的新運算執行個體數量。ZONE:預留項目所在的可用區。
REST
如要修改預留項目中預留的運算執行個體數量,請向 reservations.resize 方法發出 POST 要求。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME/resize
{
"specificSkuCount": "NUMBER_OF_VMS"
}
更改下列內容:
PROJECT_ID:預訂所在的專案 ID。ZONE:預留項目所在的可用區。RESERVATION_NAME:預訂名稱。NUMBER_OF_VMS:要預留的運算執行個體數量。
修改預留項目的共用類型
您可以將單一專案預留項目轉換為共用預留項目,或將共用預留項目轉換為單一專案預留項目。修改預留項目的共用類型時,您可以與機構中最多 100 個專案共用預留資源,也可以限制只有擁有者專案能存取。
為避免修改預訂的共用類型時發生錯誤,請先考量下列事項:
如要將單一專案預留項目轉換為共用預留項目,請確認下列事項:
專案權限:確認專案可以建立共用預留項目。如需操作說明,請參閱「允許或限制專案建立共用預留項目」。
配額限制:如果預留項目類型需要配額,您可能需要額外的預留資源配額。共用預留項目和單一專案預留項目的配額需求不同。詳情請參閱「共用預留項目的額外配額規定」。
如要將共用預留項目轉換為單一專案預留項目,請確認下列事項:
消費者運算執行個體:如要修改指定預留項目,您必須停止、暫停或刪除任何運算執行個體,這些執行個體會在使用預留項目的每個消費者專案中,耗用預留項目。這項規定不適用於擁有者專案中的運算執行個體。
如要修改預留項目的共用類型,請選取下列其中一個選項:
gcloud
如要修改預留項目的共用類型,請使用 gcloud compute reservations update 指令。
請根據要如何修改預訂,加入下列其中一個旗標:
如要將單一專案預留項目轉換為共用預留項目,請加入
--add-share-with和--share-setting=projects旗標:gcloud compute reservations update RESERVATION_NAME \ --add-share-with=CONSUMER_PROJECT_IDS \ --share-setting=projects \ --zone=ZONE如要將共用預留項目轉換為單一專案預留項目,請加入
--share-setting=local旗標:gcloud compute reservations update RESERVATION_NAME \ --share-setting=local \ --zone=ZONE
更改下列內容:
RESERVATION_NAME:要修改的預留項目名稱。CONSUMER_PROJECT_IDS:以半形逗號分隔的專案 ID 清單,用於指定要與哪些專案共用預留項目,例如project-1,project-2。您最多可以與 100 個專案共用預留項目,這些專案必須與擁有者專案位於同一個組織。ZONE:預留項目所在的可用區。
REST
如要修改預留項目的共用類型,請向 reservations.update 方法發出 PATCH 要求。
請根據您要如何修改預留項目,提出下列其中一項要求:
如要將單一專案預留項目轉換為共用預留項目,請按照下列步驟提出要求。在要求網址中,為要共用預留項目的每個專案加入
paths=shareSettings.projectMap.PROJECT_ID_OR_NUMBER查詢參數。舉例來說,如要與兩項專案共用預留項目,請提出下列要求。您最多可以與 100 個專案共用預留項目,這些專案必須與擁有者專案位於同一個組織。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=shareSettings.shareType&paths=shareSettings.projectMap.CONSUMER_PROJECT_NUMBER_1&paths=shareSettings.projectMap.CONSUMER_PROJECT_NUMBER_2 { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_OR_NUMBER_1": { "projectId": "CONSUMER_PROJECT_ID_OR_NUMBER_1" }, "CONSUMER_PROJECT_ID_OR_NUMBER_2": { "projectId": "CONSUMER_PROJECT_ID_OR_NUMBER_2" } } } }如要將共用預留項目轉換為單一專案預留項目,請按照下列步驟提出要求:
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=shareSettings.shareType { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "LOCAL" } }
更改下列內容:
PROJECT_ID:預訂項目所在的專案 ID (擁有者專案)。ZONE:預留項目所在的可用區。RESERVATION_NAME:要修改的預留項目名稱。CONSUMER_PROJECT_ID_OR_NUMBER_1和CONSUMER_PROJECT_ID_OR_NUMBER_2:要共用預留項目的兩個專案 ID 或編號。
修改共用預留項目中的用戶專案
修改可使用共用預留項目的用戶專案時,為避免發生錯誤,請考量下列事項:
移除專案:只有在這些專案中沒有任何運算執行個體使用保留項目時,您才能禁止個人專案使用共用保留項目。如要停止運算執行個體耗用預留項目,請停止、暫停或刪除運算執行個體。
新增專案:只有在用戶專案與擁有者專案位於同一機構時,您才能允許用戶專案使用共用預留項目。如要將專案遷移至擁有者專案的組織,請參閱「在組織資源之間遷移專案」。
修改共用預留項目的用戶專案後,預留項目的用量可能會變更。舉例來說,如果您設定預留資源,允許任何相符的運算執行個體使用 (預設設定),那麼任何新加入的消費者專案可能會立即開始使用預留資源。如要進一步瞭解專案會優先使用哪些相符的預留項目,請參閱「預留項目使用順序」。
如要修改可使用共用預留項目的消費者專案,請選取下列其中一個選項:
控制台
前往 Google Cloud 控制台的「Reservations」(預留項目) 頁面。
在「On-demand reservations」(隨需預留項目) 分頁 (預設),按一下「Name」(名稱) 欄中要說明的預留項目名稱。
系統會開啟預留項目的詳細資料頁面。
按一下「Edit」(編輯)。
在「Selected projects」(所選專案) 部分,執行下列任一操作:
如要停止與特定消費者專案共用預留項目,請按一下 「Delete」(刪除)。
如要開始與一或多個特定專案共用預留項目,請按照下列步驟操作:
按一下「 新增專案」。
在擁有者專案的組織中,找出要共用預留項目的各項專案,並勾選對應的核取方塊。共用預留項目最多可與 100 個用戶專案共用。
按一下「選取」。
如要確認變更,請按一下「儲存」。
預留項目可能需要幾秒鐘才能修改完成。
gcloud
修改共用預留項目的用戶專案時,您必須以逗號分隔清單,指定要允許或停止允許使用共用預留項目的專案 ID。所有用戶專案都必須與擁有者專案屬於同一個組織。請勿指定擁有者專案;根據預設,共用預留項目的擁有者專案一律可以取用該預留項目。
如要修改共用預留項目的用戶專案,請執行下列任一操作:
如要允許一或多個專案使用共用預留項目,請使用
gcloud compute reservations update指令並搭配--add-share-with旗標。gcloud compute reservations update RESERVATION_NAME \ --add-share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE更改下列內容:
RESERVATION_NAME:現有共用預留項目的名稱。CONSUMER_PROJECT_IDS:以半形逗號分隔的專案 ID 清單,用於指定要與哪些專案共用預留項目,例如project-1,project-2。共用預留項目最多可與 100 個用戶專案共用。ZONE:共用預留資源所在的可用區。
如要停止允許一或多個專案使用共用預留項目,請使用
gcloud compute reservations update指令並搭配--remove-share-with旗標。gcloud compute reservations update RESERVATION_NAME \ --remove-share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE更改下列內容:
RESERVATION_NAME:現有共用預留項目的名稱。CONSUMER_PROJECT_IDS:以半形逗號分隔的專案 ID 清單,您要停止與這些專案共用預留資源,例如project-1,project-2。ZONE:共用預留項目所在的可用區。
如要替換可使用共用預訂的專案清單,請使用
gcloud beta compute reservations update指令搭配--share-with旗標。gcloud beta compute reservations update RESERVATION_NAME \ --share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE更改下列內容:
RESERVATION_NAME:現有共用預留項目的名稱。ZONE:共用預留項目所在的可用區。CONSUMER_PROJECT_IDS:以半形逗號分隔的專案 ID 清單,用於指定要與哪些專案共用預留項目,例如project-1,project-2。共用預留項目最多可與 100 個用戶專案共用。
REST
修改共用預留項目的用戶專案時,必須指定要新增或移除的專案。如要允許專案使用預留項目,請指定專案 ID 或專案編號。如要禁止專案使用預留項目,請務必指定專案編號。所有消費者專案都必須與擁有者專案屬於同一個機構。請勿指定擁有者專案;根據預設,共用預留項目的擁有者專案一律可使用該預留項目。
如要修改共用預留項目的用戶專案,請執行下列任一操作:
如要允許一或多個專案使用共用預留項目,請對
reservations.update方法發出PATCH要求。在要求網址中,為每個要分享預訂內容的專案加入paths=shareSettings.projectMap.PROJECT_ID_OR_NUMBER查詢參數。舉例來說,如要允許兩項專案使用共用預留項目,請按照下列方式提出
PATCH要求。共用預留項目最多可與 100 個用戶專案共用。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=shareSettings.projectMap.CONSUMER_PROJECT_NUMBER_1&paths=shareSettings.projectMap.CONSUMER_PROJECT_NUMBER_2 { "name": "RESERVATION_NAME", "shareSetting": { "projectMap": { "CONSUMER_PROJECT_ID_OR_NUMBER_1": { "projectId": "CONSUMER_PROJECT_ID_OR_NUMBER_1" }, "CONSUMER_PROJECT_ID_OR_NUMBER_2": { "projectId": "CONSUMER_PROJECT_ID_OR_NUMBER_2" } } } }更改下列內容:
PROJECT_ID:共用預留資源所在的專案 ID (擁有者專案)。ZONE:共用預留項目所在的可用區。RESERVATION_NAME:現有共用預留項目的名稱。CONSUMER_PROJECT_ID_OR_NUMBER_1和CONSUMER_PROJECT_ID_OR_NUMBER_2:要共用預留項目的兩個專案 ID 或編號。
如要停止允許一或多個專案使用共用預留項目,請對
reservations.update方法發出PATCH要求。在要求網址中,為每個要停止分享預訂的專案加入paths=shareSettings.projectMap.PROJECT_NUMBER查詢參數。此外,您必須從要求主體中省略shareSetting欄位。舉例來說,如要停止允許兩項專案使用共用預留項目,請按照下列方式提出
PATCH要求:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=shareSettings.projectMap.CONSUMER_PROJECT_NUMBER_1&paths=shareSettings.projectMap.CONSUMER_PROJECT_NUMBER_2 { "name": "RESERVATION_NAME" }更改下列內容:
PROJECT_ID:共用預留資源所在的專案 ID (擁有者專案)。ZONE:共用預留項目所在的可用區。RESERVATION_NAME:現有共用預留項目的名稱。CONSUMER_PROJECT_NUMBER_1和CONSUMER_PROJECT_NUMBER_2:要停止共用預留項目的兩個專案編號。
修改預留項目的共用政策
修改 GPU 運算執行個體預留項目的共用政策,即可控管 Vertex AI 訓練或預測工作是否使用預留項目。
禁止 Vertex AI 工作使用預留項目之前,請先停止使用該預留項目的所有 Vertex AI 工作。否則會發生錯誤。
如要修改 GPU 執行個體預留項目的共用政策,請選取下列其中一個選項:
控制台
前往 Google Cloud 控制台的「Reservations」(預留項目) 頁面。
在「On-demand reservations」(隨需預留項目) 分頁 (預設) 的「Name」(名稱) 欄中,按一下要修改的 GPU 執行個體預留項目名稱。系統會顯示預留項目的詳細資料頁面。
在「與其他 Google Cloud 服務共用」列中,按一下 「編輯服務共用設定」。
在「分享預訂資訊」窗格中,執行下列任一操作:
如要允許 Vertex AI 工作使用預留項目,請選取「Share reservation」(共用預留項目)。
如要禁止 Vertex AI 工作使用預留項目,請選取「Don't share reservation」(不共用預留項目)。
按一下 [儲存]。
預留項目可能需要幾秒鐘才能修改完成。
gcloud
如要修改 GPU 執行個體預留項目的共用政策,請使用 gcloud compute reservations update 指令搭配 --reservation-sharing-policy 標記。
gcloud compute reservations update RESERVATION_NAME \
--reservation-sharing-policy=SHARING_POLICY \
--zone=ZONE
更改下列內容:
RESERVATION_NAME:現有預留項目的名稱。SHARING_POLICY:預留項目的共用政策。請指定下列其中一個值:如要允許 Vertex AI 工作使用預留項目,請按照下列步驟操作:
ALLOW_ALL如要禁止 Vertex AI 工作使用預留項目:
DISALLOW_ALL
ZONE:預留項目所在的可用區
REST
如要修改 GPU 執行個體預留項目的共用政策,請向 reservations.update 方法傳送 PATCH 要求。在要求網址中,加入設為 reservationSharingPolicy.serviceShareType 的 paths 查詢參數。
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=reservationSharingPolicy.serviceShareType
{
"name": "RESERVATION_NAME",
"reservationSharingPolicy": {
"serviceShareType": "SHARING_POLICY"
}
}
更改下列內容:
PROJECT_ID:預留項目所在的專案 ID。ZONE:預留項目所在的可用區。RESERVATION_NAME:現有預訂的名稱。SHARING_POLICY:預留項目的共用政策。請指定下列其中一個值:如要允許 Vertex AI 工作使用預留項目,請按照下列步驟操作:
ALLOW_ALL如要禁止 Vertex AI 工作使用預留項目:
DISALLOW_ALL
修改預留項目的自動刪除設定
如要修改 Compute Engine 自動刪除現有預留項目的時間,請執行下列任一操作:
啟用自動刪除選項,或變更自動刪除預留項目的時間。
停用自動刪除選項。
如要修改預留項目的自動刪除設定,請選取下列任一選項:
控制台
前往 Google Cloud 控制台的「Reservations」(預留項目) 頁面。
在「On-demand reservations」(隨需預留項目) 分頁 (預設),按一下「Name」(名稱) 欄中要修改的預留項目名稱。
預訂詳細資料頁面隨即開啟。
在「Auto-delete time」(自動刪除時間) 列中,按一下 「Edit auto-delete time」(編輯自動刪除時間)。
在「Update reservation」(更新預留項目) 窗格中,執行下列任一操作:
如要在特定日期和時間刪除預留項目,請按照下列步驟操作:
如果尚未啟用自動刪除選項,請點按「啟用自動刪除功能」切換鈕,將切換鈕設為開啟。
在「Auto-delete time」(自動刪除時間) 欄位中,輸入 Compute Engine 自動刪除預留項目的日期和時間。
否則,請按一下「Enable auto-delete」(啟用自動刪除功能) 切換鈕,將切換鈕設為關閉。
按一下「提交」。
修改預訂可能需要幾秒鐘才能完成。
gcloud
啟用預留項目的自動刪除選項後,您可以指定預留項目的刪除日期和時間,也可以指定預留項目的刪除時間間隔。
如要啟用自動刪除選項或變更預留項目的刪除時間,請執行下列任一操作:
如要在特定日期和時間刪除預留項目,請使用
gcloud beta compute reservations update指令搭配--delete-at-time旗標。gcloud beta compute reservations update RESERVATION_NAME \ --delete-at-time=DELETE_AT_TIME \ --zone=ZONE更改下列內容:
RESERVATION_NAME:現有預留項目的名稱。DELETE_AT_TIME:日期和時間,格式為 RFC 3339 時間戳記。ZONE:預留項目所在的可用區。
如要在特定時間長度後刪除預留項目,請使用
gcloud beta compute reservations update指令,並加上--delete-after-duration旗標。gcloud beta compute reservations update RESERVATION_NAME \ --delete-after-duration=DELETE_AFTER_DURATION \ --zone=ZONE更改下列內容:
RESERVATION_NAME:現有預留項目的名稱。DELETE_AFTER_DURATION:預留項目自動刪除前的天數、時數、分鐘數或秒數。例如,指定30m代表 30 分鐘,或指定1d2h3m4s代表 1 天 2 小時 3 分鐘 4 秒。ZONE:預留項目所在的可用區。
如要停用自動刪除選項,請使用 gcloud beta compute reservations update 指令,並加上 --disable-auto-delete 旗標。
gcloud beta compute reservations update RESERVATION_NAME \
--disable-auto-delete \
--zone=ZONE
更改下列內容:
RESERVATION_NAME:現有預留項目的名稱。ZONE:預留項目所在的可用區。
REST
在預留項目中啟用自動刪除選項後,您可以指定預留項目的刪除日期和時間,也可以指定預留項目的保留期限。
如要啟用自動刪除選項,或變更預留項目的刪除時間,請執行下列任一操作:
如要在特定日期和時間刪除預留項目,請向
beta.reservations.update方法發出PATCH要求。在要求網址中,加入設為deleteAtTime的paths查詢參數。PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=deleteAtTime { "name": "RESERVATION_NAME", "deleteAtTime": "DELETE_AT_TIME" }更改下列內容:
PROJECT_ID:預訂項目所在的專案 ID。ZONE:預留項目所在的可用區。RESERVATION_NAME:現有預訂的名稱。DELETE_AT_TIME:以 RFC 3339 時間戳記格式表示的日期和時間。
如要在特定時間長度後刪除預留項目,請向
beta.reservations.update方法發出PATCH要求。在要求網址中,加入設為deleteAfterDuration.seconds的paths查詢參數。PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=deleteAfterDuration.seconds { "name": "RESERVATION_NAME", "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" } }更改下列內容:
PROJECT_ID:預訂項目所在的專案 ID。ZONE:預留項目所在的可用區。RESERVATION_NAME:現有預訂的名稱。DELETE_AFTER_DURATION:預留項目自動刪除前的時間長度,以秒為單位。舉例來說,如要指定 86,400 秒 (1 天),請輸入86400。
如要停用自動刪除選項,請向 beta.reservations.update 方法提出 PATCH 要求。在要求中指定 paths=deleteAtTime&paths=deleteAfterDuration 查詢參數,並省略要求主體。
PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=deleteAtTime&paths=deleteAfterDuration
更改下列內容:
PROJECT_ID:預訂項目所在的專案 ID。ZONE:預留項目所在的可用區。RESERVATION_NAME:現有預訂的名稱。