本文档介绍了如何修改预留。如需修改附加到承诺的预留,请改为参阅替换附加到承诺的预留。
例如,当您的容量需求发生变化,或者您要更改哪些工作负载可以使用预留时,请修改预留。
限制
在修改预留之前,请考虑以下事项:
您只能在创建共享预留的项目中修改相应的共享预留。
您只能在以下情况下修改自动创建的预留:
对于在 AI Hypercomputer 中创建的未来预留,您只能在预留开始时间之后修改预留。
对于在 Compute Engine 中创建的未来预留,您只能在预留结束时间之后修改预留。
对于 AI Hypercomputer 中的未来预留,您只能修改自动创建预留以允许或禁止 Vertex AI 作业使用该预留。
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
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 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得修改预留所需的权限,请让您的管理员为您授予项目的 Compute Admin (
roles/compute.admin) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。此预定义角色包含修改预留所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
修改预留需要以下权限:
-
如需修改预留中的自动删除选项、共享预留中的使用方项目,或者 Vertex AI 作业是否可以使用挂接了 GPU 的实例的预留:针对项目的
compute.reservations.update权限 -
如需修改预留中的实例数量:针对项目的
compute.reservations.resize权限
修改预留
根据您要在预留中修改的属性,使用以下方法之一:
如需启用或停用预留的自动删除,或更改 Compute Engine 自动删除预留的日期和时间,请修改预留的自动删除。
如需添加或移除可以使用共享预留的使用方项目,请修改共享预留中的使用方项目。
如需增加或减少预留中的预留 Compute Engine 实例数量,请修改预留中的预留计算实例数量。
如需允许或禁止 GPU 实例的预留供 Vertex AI 中的自定义训练作业或预测作业使用,请修改预留的共享政策。
如需更改此列表中未提及的任何属性,您必须创建新预留。如需了解相关说明,请参阅本文档中的更改预留中的其他属性。
修改预留的自动删除
您可以通过执行以下操作之一来修改 Compute Engine 自动删除现有预留的时间:
启用自动删除选项,或更改自动删除预留的时间。
停用自动删除选项。
如需修改预留的自动删除,请选择以下选项之一:
控制台
在 Google Cloud 控制台中,前往预留页面。
在按需预留标签页(默认)的名称列中,点击您要修改的预留的名称。
系统会打开该预留的详情页面。
在自动删除时间行中,点击 修改自动删除时间。
在更新预留窗格中,执行以下操作之一:
如需在特定日期和时间删除预留,请执行以下操作:
如果尚未启用自动删除选项,请点击启用自动删除切换开关,以将其切换为开启位置。
在自动删除时间字段中,输入 Compute Engine 自动删除预留的日期和时间。
否则,请点击启用自动删除切换开关,以切换到关闭位置。
点击提交。
修改预留的操作可能需要几秒钟时间才能完成。
gcloud
在预留中启用自动删除选项时,您可以指定应删除预留的日期和时间,或指定在某个时间段后删除预留。
如需启用自动删除选项或更改应删除预留的时间,请执行以下操作之一:
如需在特定日期和时间删除预留,请使用带有
--delete-at-time标志的gcloud beta compute reservations update命令。gcloud beta compute reservations update RESERVATION_NAME \ --delete-at-time=DELETE_AT_TIME \ --zone=ZONE替换以下内容:
RESERVATION_NAME:现有预留的名称。DELETE_AT_TIME:采用 RFC 3339 时间戳格式的日期和时间。ZONE:预留所在的可用区。
如需在特定时间段后删除预留,请使用带有
--delete-after-duration标志的gcloud beta compute reservations update命令。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:预留所在的可用区。
如需停用自动删除选项,请使用带有
--disable-auto-delete标志的gcloud beta compute reservations update命令。gcloud beta compute reservations update RESERVATION_NAME \ --disable-auto-delete \ --zone=ZONE替换以下内容:
RESERVATION_NAME:现有预留的名称。ZONE:预留所在的可用区。
REST
在预留中启用自动删除选项时,您可以指定应删除预留的日期和时间,或指定在某个时间段后删除预留。
如需启用自动删除选项或更改应删除预留的时间,请执行以下操作之一:
如需在特定日期和时间删除预留,请向
beta.reservations.update方法发出PATCH请求。在请求网址中添加paths查询参数并设置为deleteAtTime。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请求。在请求网址中添加paths查询参数并设置为deleteAfterDuration.seconds。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:以秒为单位的时长,超过此时间将自动删除预留。例如,指定86400标识 86400 秒(1 天)。
如需停用自动删除选项,请向
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:现有预留的名称。
修改共享预留中的使用方项目
为避免在修改共享预留的使用方项目时出错,请考虑以下事项:
移除项目:只有当使用方项目中的任何计算实例都不使用共享预留时,您才能禁止这些项目使用该预留。如需阻止实例使用预留,请停止或删除实例。
添加项目:仅当使用方项目与所有者项目位于同一组织中时,您才能允许相应项目使用共享预留。如需将项目迁移到所有者项目的组织,请参阅 Resource Manager 文档中的在组织资源之间迁移项目。
修改共享预留的使用方项目后,该预留的使用情况可能会发生变化。例如,如果您将预留配置为允许任何匹配的实例使用它(默认配置),则任何新添加的使用方项目都可能会立即开始使用该预留。如需详细了解哪些匹配的预留项目会率先使用预留,请参阅预留使用顺序。
如需修改可以使用共享预留的使用方项目,请选择以下选项之一:
控制台
在 Google Cloud 控制台中,前往预留页面。
在按需预留标签页(默认)的名称列中,点击您要描述的预留的名称。
随即会显示预留的详情页面。
点击 修改。
在所选项目部分中,执行以下操作之一:
如需停止与特定使用方项目共享预留,请点击 删除。
如需开始与一个或多个特定项目共享预留,请执行以下操作:
点击 添加项目。
针对您要与之共享预留的所有者项目的组织,选中每个项目对应的复选框。 您可以与最多 100 个使用方项目共享共享预留。
点击选择。
若要确认您的更改,请点击保存。
修改预留的操作可能需要几秒钟时间才能完成。
gcloud
修改共享预留的使用方项目时,必须指定允许或不再允许使用共享预留的项目的 ID 列表(以英文逗号分隔)。这些项目必须与所有者项目位于同一组织中。请勿在列表中指定所有者项目。默认情况下,已允许使用共享预留。
如需修改共享预留的使用方项目,请执行以下操作之一:
如需允许一个或多个项目使用共享预留,请使用带有
--add-share-with标志的gcloud compute reservations update命令。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:共享预留所在的可用区。
如需不再允许一个或多个项目使用共享预留,请使用带
--remove-share-with标志的gcloud compute reservations update命令。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查询参数。例如,如需允许两个项目使用共享预留,请发出如下
PATCH请求。您可以与最多 100 个使用方项目共享共享预留。PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=shareSettings.projectMap.CONSUMER_PROJECT_ID_1&paths=shareSettings.projectMap.CONSUMER_PROJECT_ID_2 { "name": "RESERVATION_NAME", "shareSetting": { "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } } }替换以下内容:
PROJECT_ID:所有者项目的 ID,即用于创建共享预留的项目。ZONE:共享预留所在的可用区。RESERVATION_NAME:现有共享预留的名称。CONSUMER_PROJECT_ID_1和CONSUMER_PROJECT_ID_2:您要与之共享预留的两个项目的 ID。
如需不再允许一个或多个项目使用共享预留,请向
reservations.update方法发出PATCH请求。在请求网址中,针对您要停止与之共享预留的每个项目包含paths=shareSettings.projectMap.PROJECT_ID查询参数。此外,您还必须在请求正文中省略shareSetting字段。例如,如需不再允许两个项目使用共享预留,请发出如下
PATCH请求:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=shareSettings.projectMap.CONSUMER_PROJECT_ID_1&paths=shareSettings.projectMap.CONSUMER_PROJECT_ID_2 { "name": "RESERVATION_NAME" }替换以下内容:
PROJECT_ID:所有者项目的 ID,即用于创建共享预留的项目。ZONE:共享预留所在的可用区。RESERVATION_NAME:现有共享预留的名称。CONSUMER_PROJECT_ID_1和CONSUMER_PROJECT_ID_2:您要停止与之共享预留的两个项目的 ID。
修改预留中的预留实例数量
您可以增加或减少预留中的预留计算实例数量。不过,在修改实例数量之前,请考虑以下事项以避免出错:
如需增加任何预留中的实例数量,请确保满足以下条件:
如需减少特定预留中的实例数量,请确保使用该预留的实例数量不超过较小的新数量。如果超过,请对超过新数量的实例执行以下操作之一:
如需修改预留中的预留实例数量,请选择以下选项之一:
控制台
在 Google Cloud 控制台中,前往预留页面。
在按需预留标签页(默认)的名称列中,点击您要修改的预留的名称。
随即会显示预留的详情页面。
点击 修改。
在虚拟机实例数量字段中,重新输入要预留的实例数量。
点击保存进行确认。
修改预留的操作可能需要几秒钟时间才能完成。
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:要预留的新实例数量。
修改预留的共享政策
修改 GPU 计算实例预留的共享政策时,您可以控制 Vertex AI 训练或预测作业是否使用预留。
在禁止 Vertex AI 作业使用某个预留之前,请先停止使用该预留的所有 Vertex AI 作业。否则,您会遇到错误。
如需修改 GPU 实例预留的共享政策,请选择以下选项之一:
控制台
在 Google Cloud 控制台中,前往预留页面。
在按需预留标签页(默认)的名称列中,点击您要修改的 GPU 实例预留的名称。 系统会显示一个提供相应预留详细信息的页面。
在 Share with other Google Cloud services 行中,点击 修改服务共享设置。
在预留共享窗格中,执行以下操作之一:
如需允许 Vertex AI 作业使用预留,请选择共享预留。
如需禁止 Vertex AI 作业使用预留,请选择不共享预留。
点击保存。
修改预留的操作可能需要几秒钟时间才能完成。
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请求。在请求网址中添加paths查询参数并设置为reservationSharingPolicy.serviceShareType。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
更改预留中的其他属性
如果您要修改修改预留部分中未提到的属性,则必须改为创建替换预留。
如需在不会导致预留容量意外减少的情况下替换预留,请执行以下操作:
问题排查
了解如何排查预留更新存在的问题。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-09-02。
[[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-09-02。"],[[["\u003cp\u003eThis document details how to modify existing reservations, including changing auto-delete settings, consumer projects, the number of reserved instances, and sharing policies, but it also notes that reservations attached to commitments must be modified in a separate location.\u003c/p\u003e\n"],["\u003cp\u003eYou can modify a reservation's auto-delete feature to enable or disable it, as well as set a specific date and time or duration for automatic deletion using the console, gcloud command-line tool, or REST API.\u003c/p\u003e\n"],["\u003cp\u003eShared reservations can be modified to add or remove consumer projects within the same organization, allowing you to control which projects can utilize the reserved resources, and any removed consumer projects will no longer be able to use the resources.\u003c/p\u003e\n"],["\u003cp\u003eThe number of instances in a reservation can be increased or decreased, provided that you have the necessary unused quota and that you do not exceed the maximum instance count, while decreases must take into consideration any instances currently consuming the reservation, as well.\u003c/p\u003e\n"],["\u003cp\u003eFor reservations of GPU instances, the sharing policy can be updated to either allow or disallow Vertex AI's custom training or prediction jobs to consume the resources, and if you need to change properties not listed, you must create a new replacement reservation.\u003c/p\u003e\n"]]],[],null,[]] -