本文档介绍了如何修改未来预留请求。
您可以在未来预留请求开始时间之前随时修改该请求,前提是该请求尚未取消或不处于待审批状态。当您的容量需求发生变化时(例如,您想增加预留虚拟机实例的数量或更改预留期),修改未来预留请求会很有用。如果您想修改共享未来预留请求,则必须使用所有者项目修改该请求。
如需在预留期结束后修改自动创建的预留,请参阅修改预留。
准备工作
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以通过选择以下选项之一向 Compute Engine 进行身份验证:
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
如需在本地开发环境中使用本页面上的 REST API 示例,请使用您提供给 gcloud CLI 的凭据。
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
如需了解详情,请参阅 Google Cloud 身份验证文档中的使用 REST 时进行身份验证。
-
所需的角色
如需获得修改未来预留请求所需的权限,请要求管理员授予您项目的 Compute Future Reservation Admin (roles/compute.futureReservationAdmin
) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
此预定义角色包含修改未来预留请求所需的 compute.futureReservations.update
权限。
可修改的属性
未来预留请求具有几个属性,用于定义预留、确定其行为以及指定要预留的资源。您可以按照以下部分中的说明修改这些属性。
创建之后
创建未来预留请求后,您将无法修改以下属性:
未来预留请求的名称。
创建未来预留请求的项目。
未来预留请求所在的可用区。
要使用的实例模板以及实例模板中指定的虚拟机属性。
如需在未来预留请求进入锁定时间之前修改其中任何属性,请创建新请求。
提交之前
在将未来预留请求提交给 Google Cloud 进行审核之前,或者在提交未来预留请求进行审核但被拒绝后,您可以修改以下属性:
自动删除选项
说明
GPU 和 GPU 类型
本地固态硬盘磁盘和磁盘接口类型
机器系列和机器类型
满足最低 CPU 要求的平台
名称前缀
共享设置
预留期的开始时间和结束时间
总数(虚拟机数量)
系统会立即修改未来预留请求草稿状态,而且修改次数不受限制。如果您要修改已被拒绝 (DECLINED
) 的未来预留请求,则只有在再次提交该请求以供审核后,才能修改该请求。
获得批准之后
Google Cloud 批准未来预留后,您可以在该未来预留达到处于正在预配 (PROVISIONING
) 的采购状态之前对其进行修改。具体而言,您可以修改以下属性:
通过随时修改未来预留:
自动删除选项
说明
名称前缀
在开始时间前至少 72 小时提交修改请求:
GPU 和 GPU 类型*
本地固态硬盘磁盘和磁盘接口类型*
机器系列和机器类型*
满足最低 CPU 要求的平台*
共享设置
预留期的开始时间和结束时间
总数(虚拟机数量)*
* 如果您在未来预留开始时间后的 14 天内请求更改任何虚拟机属性或者请求大幅增加或减少总数, Google Cloud 可能会拒绝您的修改请求。
修改未来预留请求
在修改未来预留请求之前,请查看您可以修改的属性(如果尚未查看)。
如果您想将通过实例模板创建的单项目未来预留请求修改为共享未来预留请求,则无法使用同一模板在创建共享未来预留请求的项目之外,创建可以使用自动创建的预留的虚拟机。对于与之共享未来预留的项目,您必须在这些项目中创建类似的实例模板,或通过直接指定属性来创建虚拟机。
如需修改未来预留请求,请选择以下选项之一:
在 Google Cloud 控制台中,转到预留页面。
点击未来预留标签页。
在名称列中,点击要修改的未来预留请求的名称。
系统随即会打开所选未来预留请求的详情页面。
如果要修改已获批准的未来预留的自动删除选项、说明或名称前缀,请执行以下一项或多项操作:
如需修改自动删除选项,请在自动创建预留的自动删除时间行中点击
修改,然后执行以下操作以下内容:通过执行以下任一操作,指定您要启用、停用还是修改自动删除选项:
如需启用自动删除选项或更改 Compute Engine 自动删除自动创建的预留的时间,请执行以下操作:
点击启用自动删除切换开关,以切换到开启位置。
可选:对于自动删除时间,输入删除自动创建预留的新日期和时间。该日期和时间必须晚于预留期的结束时间。如果您将此字段留空,则自动创建的预留将在预留期结束时间之后 2 小时内删除。
否则,请点击启用自动删除切换开关,以切换到关闭位置。
点击提交。
如需修改名称前缀,请在前缀行中点击
修改,然后执行以下操作:在前缀中,输入新的名称前缀。
点击提交。
如需修改说明,请在说明行中点击
修改,然后执行以下操作:在说明中,输入新的说明。
点击提交。
点击
修改或 修改草稿。系统随即会打开用于修改所选未来预留请求的页面。
如需修改未来预留请求并将其提交给Google Cloud 进行审核,或者如需保存请求草稿,请执行以下一项或多项操作:
对于前缀,请为此未来预留请求所配置的自动创建的预留输入一个新的名称前缀。
在说明中,输入新的说明。
修改未来预留请求的开始时间或结束时间。为此,您需要确保实现以下各项安排:
在共享类型部分中,您可以选择本地或共享。如果您选择共享,则可以添加或移除项目,以便共享未来预留请求。您最多可以添加 100 个项目。
在虚拟机实例数量中,输入要预留的虚拟机总数。
如果您要修改不是通过实例模板创建的未来预留,则可以在机器配置部分中更改以下内容:
已预留虚拟机中使用的机器系列和机器类型。
要挂接到已预留虚拟机的 GPU。
已预留虚拟机的本地固态硬盘磁盘和磁盘接口类型。
在自动生成的预留自动删除部分中,您可以为未来预留请求启用或停用对自动创建的预留执行自动删除的操作。
根据您要修改的未来预留请求的采购状态,执行以下操作之一:
如果您要修改未来预留请求草稿,请执行以下操作之一:
要保存更改,请点击保存草稿。
如需将未来预留请求草稿提交给Google Cloud 进行审核,请点击提交。
否则,请点击提交。
如果您提交修改请求,则将打开预留页面。否则,系统会打开未来预留的详情页面。
如需修改未来预留请求,请使用 gcloud beta compute future-reservations update
命令。
gcloud beta compute future-reservations update FUTURE_RESERVATION_NAME \
--accelerator=count=NUMBER_OF_ACCELERATORS ,type=ACCELERATOR_TYPE \
--description="DESCRIPTION " \
--local-ssd=size=375,interface=INTERFACE \
--machine-type=MACHINE_TYPE \
--min-cpu-platform=MIN_CPU_PLATFORM \
--name-prefix=NAME_PREFIX \
--planning-status=PLANNING_STATUS \
--share-setting=SHARE_SETTING \
--share-with=CONSUMER_PROJECT_IDS \
--start-time=START_TIME \
--end-time=END_TIME \
--total-count=TOTAL_COUNT \
--zone=ZONE
替换以下内容:
FUTURE_RESERVATION_NAME
:未来预留请求的名称。PLANNING_STATUS
:未来预留请求的计划状态。 请指定以下某个值:如需修改未来预留请求草稿,但不提交进行审核,请执行以下操作:
DRAFT
。如需提交未来预留请求以供审核,请执行以下操作:
SUBMITTED
。
ZONE
:未来预留请求所在的可用区。
替换以下一个或多个占位符,或将其与相应的标志一起移除:
如需使 Compute Engine 在预留期结束时间之后自动删除自动创建的预留,请执行以下操作之一:
如需在结束时间后 2 小时内(默认)删除预留,请添加
--auto-delete-auto-created-reservations
标志。gcloud beta compute future-reservations update
FUTURE_RESERVATION_NAME \ --auto-delete-auto-created-reservations \ --planning-status=PLANNING_STATUS \ --zone=ZONE 如需在预留期结束时间之后的特定时间删除自动创建的预留,请添加
--auto-delete-auto-created-reservations
和--auto-created-reservations-delete-time
标志。gcloud beta compute future-reservations update
FUTURE_RESERVATION_NAME \ --auto-created-reservations-delete-time=AUTO_CREATED_RESERVATIONS_DELETE_TIME \ --auto-delete-auto-created-reservations \ --planning-status=PLANNING_STATUS \ --zone=ZONE 将
AUTO_CREATED_RESERVATIONS_DELETE_TIME
替换为采用 RFC 3339 时间戳格式的日期和时间。如需在预留期结束时间后的特定时长之后删除自动创建的预留,请添加
--auto-delete-auto-created-reservations
和--auto-created-reservations-duration
标志。gcloud beta compute future-reservations update
FUTURE_RESERVATION_NAME \ --auto-created-reservations-duration=DURATION_BEFORE_DELETE \ --auto-delete-auto-created-reservations \ --planning-status=PLANNING_STATUS \ --zone=ZONE 将
DURATION_BEFORE_DELETE
替换为以天、小时、分钟或秒为单位的时长。例如,指定30m
表示 30 分钟,或指定1d2h3m4s
表示 1 天 2 小时 3 分钟 4 秒。
如需停用 Compute Engine,使其无法自动删除为此未来预留请求预配的自动创建预留,请添加
--no-auto-delete-auto-created-reservations
标志。gcloud beta compute future-reservations update
FUTURE_RESERVATION_NAME \ --no-auto-delete-auto-created-reservations \ --planning-status=PLANNING_STATUS \ --zone=ZONE 如需添加或移除挂接到预留 N1 虚拟机的 GPU,或更新 GPU 类型,请执行以下操作之一:
如需更改 GPU 的数量和类型,请替换以下内容:
NUMBER_OF_ACCELERATORS
:要为每个已预留虚拟机添加的 GPU 的数量。ACCELERATOR_TYPE
:要添加到已预留虚拟机的 GPU 的类型。确保 GPU 在未来预留请求所在的可用区中可用。否则,修改请求将失败。
如需移除挂接到预留 N1 虚拟机的所有 GPU,请将
--accelerator
标志替换为--clear-accelerator
标志。
DESCRIPTION
:未来预留请求的新说明。如需在预留虚拟机中添加或移除本地固态硬盘磁盘或修改本地固态硬盘磁盘接口类型,请执行以下操作之一:
如需添加本地固态硬盘磁盘或修改磁盘接口类型,请将
INTERFACE
替换为以下值之一:如果您的启动磁盘映像具有优化的 NVMe 驱动程序:
nvme
。否则:
scsi
。
为您要添加的本地固态硬盘磁盘添加
--local-ssd
标志。您最多可以指定 24 个本地固态硬盘磁盘。如需移除挂接到已预留虚拟机的所有本地固态硬盘磁盘,请移除所有
--local-ssd
标志并添加--clear-local-ssd
标志。
MACHINE_TYPE
:要用于每个预留虚拟机的新机器类型。如果您要更改机器类型,请务必同时为新机器系列指定建议的最短预留期。否则, Google Cloud 可能会拒绝您的修改请求。MINIMUM_CPU_PLATFORM
:每个预留虚拟机将使用的新的满足最低要求的 CPU 平台。NAME_PREFIX
:为未来预留请求预配的自动创建预留的新名称前缀。SHARE_SETTING
:未来预留请求的新共享类型。请指定以下某个值:对于单个项目未来预订请求:
local
。为避免错误,您还必须将--share-with
标志替换为--clear-share-settings
标志。对于共享未来预留请求:
projects
。为避免错误,您还必须在--share-with
标志中至少指定一个使用方项目。
CONSUMER_PROJECT_IDS
:您要与之共享未来预留请求的项目的 ID 的逗号分隔列表,例如project-1,project-2
。您最多可以指定 100 个使用方项目。START_TIME
:采用 RFC 3339 时间戳格式的新的预留期开始时间。开始时间不能比您提交修改请求以供审核的日期和时间晚 1 年。如需有足够的时间在未来预留获得批准之后且在其进入锁定时间之前选择取消、删除或修改未来预留,请指定建议的开始时间。END_TIME
:采用 RFC 3339 时间戳格式的预留期的新结束时间。预留期必须至少持续 24 小时。或者,您可以将--end-time
标志替换为--duration=END_DURATION
标志。将END_DURATION
替换为预留期的时长,以秒为单位。为了提高 Google Cloud在提交未来预留请求进行审核后批准该请求的可能性,请指定建议的预留期。TOTAL_COUNT
:您要为该时间段预留的虚拟机的新总数、虚拟机配置和未来预留请求中指定的项目。如果您想增加总数,请确保您有足够的配额用于预留的资源。否则, Google Cloud 会拒绝您的修改请求。
例如,可考虑指定名为 fr-03
且位于可用区 us-central1-a
的共享未来预留请求草稿。假设您要通过进行以下更改来修改此共享未来预留请求:
将请求转换为单项目未来预留请求。
停用自动删除选项。
预留 100 个虚拟机。
将未来预留请求提交给 Google Cloud 进行审核。
如需修改 fr-03
,请运行以下命令:
gcloud beta compute future-reservations update fr-03 \
--clear-share-settings \
--no-auto-delete-auto-created-reservations \
--planning-status=SUBMITTED \
--share-setting=local \
--total-count=100 \
--zone=us-central1-a
如需修改未来预留请求,请发出针对 beta.futureReservations.update
方法的 PATCH
请求。
PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID /zones/ZONE /futureReservations/FUTURE_RESERVATION_NAME ?updateMask=UPDATE_FIELDS
{
"autoDeleteAutoCreatedReservations": "AUTO_DELETE_AUTO_CREATED_RESERVATIONS ",
"description": "DESCRIPTION ",
"name": "FUTURE_RESERVATION_NAME ",
"namePrefix": "NAME_PREFIX ",
"planningStatus": "PLANNING_STATUS ",
"shareSettings": {
"projects": [
"CONSUMER_PROJECT_ID_1 ",
"CONSUMER_PROJECT_ID_2 "
],
"shareType": "SHARE_TYPE "
},
"specificSkuProperties": {
"instanceProperties": {
"guestAccelerators": [
{
"acceleratorCount": NUMBER_OF_ACCELERATORS ,
"acceleratorType": "ACCELERATOR_TYPE "
}
],
"localSsds": [
{
"diskSizeGb": "375",
"interface": "INTERFACE_1 "
},
{
"diskSizeGb": "375",
"interface": "INTERFACE_2 "
}
],
"machineType": "MACHINE_TYPE ",
"minCpuPlatform": "MINIMUM_CPU_PLATFORM "
},
"totalCount": "TOTAL_COUNT "
},
"timeWindow": {
"endTime": "END_TIME ",
"startTime": "START_TIME "
}
}
替换以下内容:
PROJECT_ID
:未来预留请求所在项目的 ID。ZONE
:未来预留请求所在的可用区。FUTURE_RESERVATION_NAME
:未来预留请求的名称。UPDATE_FIELDS
:请求正文中要更新的字段的逗号分隔列表。您必须将每个英文逗号编码为%2C
。如果您在updateMask
查询参数和请求正文中指定某个字段,系统会更新该字段的值。否则,如果您仅在updateMask
查询参数中指定该字段,则系统会删除此字段。例如,如需更新未来预留请求中的
autoDeleteAutoCreatedReservations
、totalCount
和endTime
字段,请指定以下内容:autoDeleteAutoCreatedReservations%2CspecificSkuProperties.totalCount%2CtimeWindow.endTime
PLANNING_STATUS
:未来预留请求的计划状态。 请指定以下某个值:如需修改未来预留请求草稿,但不提交进行审核,请执行以下操作:
DRAFT
。如需提交修改请求以供审核,请执行以下操作:
SUBMITTED
。
替换以下一个或多个占位符,或将其与相应的字段一起移除:
AUTO_DELETE_AUTO_CREATED_RESERVATIONS
:如果您将此字段设置为true
,则 Compute Engine 会自动删除为未来预留请求预配的自动创建预留。默认情况下,删除操作会在预留期结束时间后的两个小时内删除。如需更改此设置,请执行以下操作之一:如需在预留期结束时间之后的特定时间删除自动创建的预留,请将
autoDeleteAutoCreatedReservations
设置为true
并指定autoCreatedReservationsDeleteTime
字段。PATCH https://compute.googleapis.com/compute/beta/projects/
PROJECT_ID /zones/ZONE /futureReservations/FUTURE_RESERVATION_NAME ?updateMask=autoDeleteAutoCreatedReservations%2CautoCreatedReservationsDeleteTime%2CplanningStatus { "autoDeleteAutoCreatedReservations": "true", "autoCreatedReservationsDeleteTime": "DELETE_TIME ", "name": "FUTURE_RESERVATION_NAME ", "planningStatus": "PLANNING_STATUS " }将
DELETE_TIME
替换为 Compute Engine 删除预留的日期和时间。日期和时间必须采用 RFC 3339 时间戳格式。如需在预留期开始时间起的特定时长后删除自动创建的预留,请将
autoDeleteAutoCreatedReservations
设置为true
并指定autoCreatedReservationsDuration
字段。PATCH https://compute.googleapis.com/compute/beta/projects/
PROJECT_ID /zones/ZONE /futureReservations/FUTURE_RESERVATION_NAME ?updateMask=autoDeleteAutoCreatedReservations%2CautoCreatedReservationsDuration%2CplanningStatus { "autoDeleteAutoCreatedReservations": "true", "autoCreatedReservationsDuration": { "seconds": "DURATION_BEFORE_DELETE " }, "name": "FUTURE_RESERVATION_NAME ", "planningStatus": "PLANNING_STATUS " }将
DURATION_BEFORE_DELETE
替换为持续时间,以秒为单位。例如,指定604800
表示 604,800 秒(7 天)。
DESCRIPTION
:未来预留请求的新说明。NAME_PREFIX
:为未来预留请求预配的自动创建预留的新名称前缀。CONSUMER_PROJECT_ID_1
和CONSUMER_PROJECT_ID_2
:您要与之共享未来预留请求的项目的 ID。这些项目必须与所有者项目位于同一组织中。您最多可以指定 100 个使用方项目。SHARE_TYPE
:未来预留请求的新共享类型。执行下列其中一项操作:如需指定单项目未来预留请求,请执行以下操作:
指定
LOCAL
。移除
shareSettings.projects
字段。
如需指定共享未来预留请求,请执行以下操作:
指定
SPECIFIC_PROJECTS
。在
shareSettings.projects
字段中指定至少一个使用方项目。使用方项目必须与所有者项目位于同一组织中。您最多可以指定 100 个使用方项目。
如需更改要挂接到预留 N1 虚拟机的 GPU 数量和类型,请替换以下内容:
NUMBER_OF_ACCELERATORS
:要为每个已预留虚拟机添加的 GPU 的数量。ACCELERATOR_TYPE
:要添加到已预留虚拟机的 GPU 的类型。 确保 GPU 在未来预留请求所在的可用区中可用。否则,修改请求将失败。
INTERFACE_1
和INTERFACE_2
:挂接到每个预留虚拟机的本地固态硬盘磁盘的磁盘接口类型。请指定以下某个值:如果您的启动磁盘映像具有优化的 NVMe 驱动程序:
NVME
。否则:
SCSI
。您最多可以指定 24 个本地固态硬盘磁盘。
MACHINE_TYPE
:要用于每个预留虚拟机的新机器类型。如果您要更改机器类型,请务必同时为新机器系列指定建议的最短预留期。否则, Google Cloud 不太可能批准您的修改请求。MINIMUM_CPU_PLATFORM
:每个预留虚拟机将使用的新的满足最低要求的 CPU 平台。TOTAL_COUNT
:您要为该时间段预留的虚拟机的新总数、虚拟机配置和此未来预留请求中指定的项目。如果您想增加总数,请确保您有足够的配额用于预留的资源。否则, Google Cloud 会拒绝您的修改请求。START_TIME
:采用 RFC 3339 时间戳格式的新的预留期开始时间。开始时间不能比您提交修改请求以供审核的日期和时间晚 1 年。如需有足够的时间在未来预留获得批准之后且在其进入锁定时间之前选择取消、删除或修改未来预留,请指定建议的开始时间。END_TIME
:采用 RFC 3339 时间戳格式的预留期的新结束时间。预留期必须至少持续 24 小时。或者,您可以将endTime
字段替换为duration
字段,以指定从预留期开始时间起的具体时长:PATCH https://compute.googleapis.com/compute/beta/projects/
PROJECT_ID /zones/ZONE /futureReservations/FUTURE_RESERVATION_NAME ?updateMask=timeWindow.duration%2CplanningStatus { "name": "FUTURE_RESERVATION_NAME ", "planningStatus": "PLANNING_STATUS ", "timeWindow": { "duration": { "seconds": "END_DURATION " } } }将
END_DURATION
替换为持续时间,以秒为单位。例如,指定1209600
表示 1,209,600 秒(14 天)。 为了提高 Google Cloud 在提交未来预留请求进行审核后批准该请求的可能性,请指定建议的预留期。
例如,可考虑指定名为 fr-03
且位于可用区 us-central1-a
的共享未来预留请求草稿。假设您要通过进行以下更改来修改此共享未来预留请求:
将请求转换为单项目未来预留请求。
停用自动删除选项。
预留 100 个虚拟机。
将未来预留请求提交给 Google Cloud 进行审核。
要修改 fr-03
,请发出 PATCH
请求,如下所示:
PATCH https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/futureReservations/fr-03?updateMask=autoDeleteAutoCreatedReservations%2CplanningStatus%2CshareSettings.shareType%2CspecificSkuProperties.totalCount
{
"autoDeleteAutoCreatedReservations": false,
"name": "fr-03",
"planningStatus": "SUBMITTED",
"shareSettings": {
"shareType": "LOCAL"
},
"specificSkuProperties": {
"totalCount": "100"
}
}
修改未来预留请求后,您可以通过查看未来预留请求的详细信息来监控其采购或更新状态。
更改未来预留请求中的其他属性
如需更改创建未来预留请求后、请求获得批准并进入其锁定时间之前无法修改的属性,请执行以下操作:
问题排查
如果您在修改未来预留请求时遇到错误,那么请参阅如何对未来预留请求进行问题排查。
如果您在进行问题排查后仍遇到问题,请与您的客户代表或 Google Cloud 支持团队联系。
后续步骤
了解如何查看未来预留请求。
了解如何取消或删除未来预留请求。
在预留期的开始时间之后,请了解如何使用自动创建的预留。
在预留期结束时间之后,了解如何修改自动创建的预留。