本文档介绍如何修改现有预留。
如需修改共享预留,必须使用所有者项目。
如需修改附加到承诺的预留,请参阅替换附加到承诺的预留。
准备工作
- 查看预留的要求和限制。
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
如需修改预留中的自动删除选项或共享预留中的使用方项目,请执行以下操作:针对项目的
compute.reservations.update
权限 -
如需修改预留中的虚拟机数量:针对项目的
compute.reservations.resize
权限 -
您可以为预留启用自动删除选项、更改 Compute Engine 自动删除预留的日期和时间或是停用预留的自动删除。
-
您可以添加或移除可使用共享预留的使用方项目。
-
您可以增加或减少预留中的预留虚拟机 (VM) 实例数量。
启用自动删除选项,或更改自动删除预留的时间。
停用自动删除选项。
在 Google Cloud 控制台中,转到预留页面。
在名称列中,点击要修改的预留的名称。
随即会打开所选预留的详情页面。
在自动删除时间行中,点击
修改自动删除时间。在更新预留窗格中,执行以下操作之一:
如需在特定日期和时间删除预留,请执行以下操作:
如果尚未启用自动删除选项,请点击启用自动删除切换开关,以将其切换为开启位置。
在自动删除时间字段中,输入 Compute Engine 自动删除预留的日期和时间。
否则,请点击启用自动删除切换开关,以切换到关闭位置。
点击提交。
修改预留的操作可能需要几秒钟时间才能完成。
如需在特定日期和时间删除预留,请使用带有
--delete-at-time
标志的gcloud beta compute reservations update
命令。gcloud beta compute reservations update RESERVATION_NAME \ --delete-at-time=DELETE_AT_TIME \ --project=PROJECT_ID \ --zone=ZONE
替换以下内容:
RESERVATION_NAME
:现有预留的名称。DELETE_AT_TIME
:采用 RFC 3339 时间戳格式的日期和时间,必须如下所示:YYYY-MM-DDTHH:MM:SSOFFSET
替换以下内容:
YYYY-MM-DD
:格式为 4 位数年份、2 位数月份和 2 位数日期而且相互之间以连字符 (-
) 分隔的日期。HH:MM:SS
:格式为 2 位数小时、2 位数分钟和 2 位数秒而且相互之间以冒号 (:
) 分隔的采用 24 小时制的时间。OFFSET
:采用世界协调时间 (UTC) 的偏移量格式的时区。例如,要使用太平洋标准时间 (PST),请指定-08:00
。或者,如果不使用偏移量,请指定Z
。
PROJECT_ID
:预留所在项目的 ID。ZONE
:预留所在的可用区。
如需在特定时间段后删除预留,请使用带有
--delete-after-duration
标志的gcloud beta compute reservations update
命令。gcloud beta compute reservations update RESERVATION_NAME \ --delete-after-duration=DELETE_AFTER_DURATION \ --project=PROJECT_ID \ --zone=ZONE
替换以下内容:
RESERVATION_NAME
:现有预留的名称。DELETE_AFTER_DURATION
:以天、小时、分钟或秒为单位的时长,超过此时间将自动删除预留。例如,指定30m
表示 30 分钟,或指定1d2h3m4s
表示 1 天 2 小时 3 分钟 4 秒。PROJECT_ID
:预留所在项目的 ID。ZONE
:预留所在的可用区。
RESERVATION_NAME
:现有预留的名称。PROJECT_ID
:预留所在项目的 ID。ZONE
:预留所在的可用区。如需在特定日期和时间删除预留,请向
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 时间戳格式的日期和时间,必须如下所示:YYYY-MM-DDTHH:MM:SSOFFSET
替换以下内容:
YYYY-MM-DD
:格式为 4 位数年份、2 位数月份和 2 位数日期而且相互之间以连字符 (-
) 分隔的日期。HH:MM:SS
:格式为 2 位数小时、2 位数分钟和 2 位数秒而且相互之间以冒号 (:
) 分隔的采用 24 小时制的时间。OFFSET
:采用世界协调时间 (UTC) 的偏移量格式的时区。例如,要使用太平洋标准时间 (PST),请指定-08:00
。或者,如果不使用偏移量,请指定Z
。
如需在特定时间段后删除预留,请向
beta.reservations.update
方法发出PATCH
请求,并将paths
查询参数设置为deleteAfterDuration
。PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations/RESERVATION_NAME?paths=deleteAfterDuration { "name": "RESERVATION_NAME", "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" } }
替换以下内容:
PROJECT_ID
:预留所在项目的 ID。ZONE
:预留所在的可用区。RESERVATION_NAME
:现有预留的名称。DELETE_AFTER_DURATION
:以秒为单位的时长,超过此时间将自动删除预留。例如,指定86400
标识 86400 秒(1 天)。
PROJECT_ID
:预留所在项目的 ID。ZONE
:预留所在的可用区。RESERVATION_NAME
:现有预留的名称。在 Google Cloud 控制台中,转到预留页面。
在名称列中,点击要描述的预留的名称。
随即会显示预留的详情页面。
点击
修改。在所选项目部分中,执行以下操作之一:
如需停止与特定使用方项目共享预留,请点击
删除。如需开始与一个或多个特定项目共享预留,请执行以下操作:
点击
添加项目。针对您要与之共享预留的所有者项目的组织,选中每个项目对应的复选框。
点击选择。
若要确认您的更改,请点击保存。
修改预留的操作可能需要几秒钟时间才能完成。
如需允许一个或多个项目使用共享预留,请使用带有
--add-share-with
标志的gcloud compute reservations update
命令。gcloud compute reservations update RESERVATION_NAME \ --project=PROJECT_ID \ --add-share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE
替换以下内容:
RESERVATION_NAME
:现有共享预留的名称。PROJECT_ID
:所有者项目的 ID,即用于创建共享预留的项目。CONSUMER_PROJECT_IDS
:要与之共享预留的项目的 ID 列表(以英文逗号分隔)。例如,指定project-1,project-2
。ZONE
:共享预留所在的可用区。
如需不再允许一个或多个项目使用共享预留,请使用带
--remove-share-with
标志的gcloud compute reservations update
命令。gcloud compute reservations update RESERVATION_NAME \ --project=PROJECT_ID \ --remove-share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE
替换以下内容:
RESERVATION_NAME
:现有共享预留的名称。PROJECT_ID
:所有者项目的 ID,即用于创建共享预留的项目。CONSUMER_PROJECT_IDS
:您希望不再与之共享预留的项目的 ID 列表(以英文逗号分隔)。例如,指定project-1,project-2
。ZONE
:共享预留所在的可用区。
如需替换可使用共享预留的项目列表,请将
gcloud beta compute reservations update
命令与--share-with
标志结合使用。gcloud beta compute reservations update RESERVATION_NAME \ --project=PROJECT_ID \ --share-with=CONSUMER_PROJECT_IDS \ --zone=ZONE
替换以下内容:
RESERVATION_NAME
:现有共享预留的名称。PROJECT_ID
:所有者项目的 ID,即用于创建共享预留的项目。ZONE
:共享预留所在的可用区。CONSUMER_PROJECT_IDS
:要与之共享预留的项目的 ID 列表(以英文逗号分隔)。例如,指定project-1,project-2
。
如需允许一个或多个项目使用共享预留,请向
reservations.update
方法发出PATCH
请求。在请求网址中,针对您要与之共享预留的每个项目包含paths=shareSettings.projectMap.PROJECT_ID
查询参数。例如,如需允许两个项目使用共享预留,请发出以下
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", "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 控制台中,转到预留页面。
在名称列中,点击要修改的预留的名称。
随即会显示预留的详情页面。
点击
修改。在虚拟机实例数量字段中,重新输入要预留的虚拟机数量。
点击保存进行确认。
修改预留的操作可能需要几秒钟时间才能完成。
RESERVATION_NAME
:现有预留的名称。PROJECT_ID
:预留所在项目的 ID。NUMBER_OF_VMS
:要预留的虚拟机的新数量。ZONE
:预留所在的可用区。PROJECT_ID
:预留所在项目的 ID。ZONE
:预留所在的可用区。RESERVATION_NAME
:现有预留的名称。NUMBER_OF_VMS
:要预留的虚拟机的新数量。
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
所需的角色
如需获得修改预留所需的权限,请让您的管理员向您授予项目的 Compute Admin (
roles/compute.admin
) IAM 角色。如需详细了解如何授予角色,请参阅管理访问权限。此预定义角色包含修改预留所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
修改预留需要以下权限:
修改预留
如需直接修改现有预留,您可以执行以下一项或多项操作:
如果您想要更改此列表中未提及的任何属性,请参阅本文档中的更改预留中的其他属性。
修改预留的自动删除
您可以通过执行以下操作之一来修改 Compute Engine 自动删除现有预留的时间:
如需修改预留的自动删除,请选择以下选项之一:
控制台
如需修改预留的自动删除,请按以下步骤操作:
gcloud
在预留中启用自动删除选项时,您可以指定应删除预留的日期和时间,或指定在某个时间段后删除预留。
如需启用自动删除选项或更改应删除预留的时间,请执行以下操作之一:
如需停用自动删除选项,请使用带有
--disable-auto-delete
标志的gcloud beta compute reservations update
命令。gcloud beta compute reservations update RESERVATION_NAME \ --disable-auto-delete \ --project=PROJECT_ID \ --zone=ZONE
替换以下内容:
REST
在预留中启用自动删除选项时,您可以指定应删除预留的日期和时间,或指定在某个时间段后删除预留。
如需启用自动删除选项或更改应删除预留的时间,请执行以下操作之一:
如需停用自动删除选项,请向
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
替换以下内容:
修改共享预留中的使用方项目
仅当项目与所有者项目位于同一组织中时,您才能允许相应项目使用共享预留。如需了解如何将项目迁移到所有者项目的组织,请参阅 Resource Manager 文档中的在组织资源之间迁移项目。
修改哪些使用方项目可以使用共享预留后,该预留的使用情况可能会发生变化。例如,任何已移除的使用方项目都会停止使用预留中的资源。此外,如果将预留配置为与预留属性匹配的任何虚拟机自动使用(默认行为),则任何添加的使用方项目都可能会开始使用预留中的资源。如果您要监控预留的使用情况,请参阅如何验证预留使用情况。
如需修改可以使用共享预留的使用方项目,请选择以下选项之一:
控制台
如需修改共享预留的使用方项目,请按照以下步骤操作:
gcloud
修改共享预留的使用方项目时,必须指定允许或不再允许使用共享预留的项目的 ID 列表(以英文逗号分隔)。这些项目必须与所有者项目位于同一组织中。请勿在列表中指定所有者项目。默认情况下,已允许使用共享预留。
如需修改共享预留的使用方项目,请选择以下方法之一:
REST
修改共享预留的使用方项目时,必须指定您要允许或不再允许使用共享预留的项目的 ID。这些项目必须与所有者项目位于同一组织中。请勿指定所有者项目。默认情况下,已允许使用共享预留。
如需修改共享预留的使用方项目,请选择以下方法之一:
修改预留中的预留虚拟机数量
您可以修改现有预留,以增加或减少预留的虚拟机数量。
在修改预留中预留虚拟机的数量之前,请确保满足以下条件:
如需修改预留中的预留虚拟机数量,请选择以下选项之一:
控制台
如需修改预留中的预留虚拟机数量,请按照以下步骤操作:
gcloud
如需修改预留中的预留虚拟机数量,请使用
gcloud compute reservations update
命令。gcloud compute reservations update RESERVATION_NAME \ --project=PROJECT_ID \ --vm-count=NUMBER_OF_VMS \ --zone=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" }
替换以下内容:
更改预留中的其他属性
如果您要修改修改预留部分中未提到的属性,则必须改为创建替换预留。
如需在不会导致预留容量意外减少的情况下替换预留,请执行以下操作:
问题排查
了解如何排查预留更新存在的问题。
后续步骤
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-10-04。
-