本文档介绍了如何创建单项目未来预留请求。
如果 Google Cloud 批准了您的单项目未来预留请求,那么,在请求中指定的开始时间,Compute Engine 会自动创建只能由同一项目中创建的虚拟机 (VM) 实例使用的预留。
准备工作
- 如果您尚未这样做,请查看未来预留的工作原理。
- 如需确保有足够的配额用于您要预留的资源,请检查您的配额。
-
如果您尚未设置身份验证,请进行设置。身份验证用于验证您的身份,以便访问 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 Future Reservation User (
roles/compute.futureReservationUser
) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。此预定义角色包含创建单项目未来预留请求所需的权限。如需查看所需的确切权限,请展开所需权限部分:
所需权限
创建单项目未来预留请求需要具备以下权限:
-
创建未来预留请求:针对项目的
compute.futureReservations.create
权限 -
让 Compute Engine 自动创建预留:针对项目的
compute.reservations.create
权限 -
如需指定实例模板:实例模板的
compute.instanceTemplates.useReadOnly
权限
创建请求草稿
创建未来预留请求时,您可以将请求保存为草稿,然后稍后提交给 Google Cloud 进行审核,也可以直接提交请求进行审核。Google 建议您先创建请求草稿,因为这样您可以确定 Compute Engine 将为该请求预配的虚拟机数量,而不是手动估算此数量,并且可以视需要先修改请求中的预留虚拟机数量,然后提交请求进行审核。
如需使用未来预留的自动创建预留,虚拟机必须具有完全匹配该预留的属性。如需通过创建未来预留请求来指定要请求预留的虚拟机的属性,请使用以下方法之一:
推荐:指定实例模板
您可以使用现有实例模板来定义未来预留请求的属性。使用实例模板,您可以定义未来预留的属性,以及可以使用同一位置的自动创建预留的虚拟机。
-
您可以使用现有虚拟机来定义未来预留请求的属性。通过使用现有虚拟机的属性,您可以创建其属性与参考虚拟机匹配的虚拟机,以使用为未来预留预配的自动创建预留。
-
您可以直接定义未来预留请求的属性。此方法要求您手动确保虚拟机属性和自动创建预留完全匹配 - 任何不匹配的属性都会阻止使用。
任何具有匹配属性的虚拟机都会自动使用未来预留的自动创建预留。如果您想阻止虚拟机使用任何此类自动创建的预留,请参阅如何创建不使用预留的虚拟机。
指定实例模板
通过指定实例模板创建未来预留请求时,请注意以下事项:
您必须在与实例模板中的资源相同的区域和可用区中创建未来预留请求。在实例模板中指定的任何区域级资源或可用区级资源(例如机器类型或 Persistent Disk)会将模板的使用范围限制为这些资源所在的位置。例如,如果您的实例模板指定了
us-central1-a
可用区中的现有 Persistent Disk,则必须在同一可用区中创建未来预留请求。否则,创建未来预留请求将失败。如需检查现有模板是否指定了任何将模板绑定到特定区域或可用区的资源,请查看模板详细信息并查找对其中的区域级资源或可用区级资源的引用。
如果您要将为未来预留预配的自动创建预留附加到承诺,则必须停用自动删除选项。如需了解详情,请参阅创建后的限制。
创建未来预留请求后,您将无法修改该未来预留请求来替换该模板的虚拟机属性,也无法指定其他模板。您必须创建新的未来预留请求。
如需通过指定现有实例模板来创建单项目未来预留,请选择以下选项之一:
控制台
在 Google Cloud 控制台中,前往预留页面。
点击未来预留标签页。
点击
创建未来预留。创建未来预留页面会打开。
在名称部分,输入未来预留请求的名称。
在前缀部分,输入名称前缀。此未来预留请求中每个自动创建预留的名称以此前缀开头。
在区域和可用区部分,选择要在其中预留资源的区域和可用区。
在开始时间部分,输入预留期的开始时间。开始时间不能比您提交未来预留请求以供审核的日期和时间晚 1 年。为了在未来预留进入锁定时间之前有足够的时间视需要修改、取消或删除未来预留,请指定开始时间的建议值。
在结束时间部分,输入预留期的结束时间。在持续时间摘要部分中,您可以查看预留期时长。如需提高在提交未来预留请求进行审核后 Google Cloud 批准该请求的可能性,请指定预留期的推荐值。
在共享类型部分中,选择本地(如果尚未选择)。
对于所需总容量,输入您要为此未来预留请求中指定的期限、虚拟机配置和项目预留的虚拟机总数。
在机器配置部分中,执行以下操作:
选择使用实例模板。
在实例模板部分,选择所需的实例模板。如果您选择了区域级实例模板,则只能在该模板所在的区域内预留资源。
在自动生成的预留自动删除部分,执行以下操作之一:
如需使 Compute Engine 能够自动删除未来预留请求的自动创建预留,请执行以下操作:
点击启用自动删除切换开关,以切换到开启位置(如果尚未设置为开启)。
可选:对于自动删除时间,输入删除自动创建预留的日期和时间。该日期和时间必须晚于预留期的结束时间。如果您将此字段留空,则自动创建的预留将在预留期结束时间之后 2 小时内删除。
否则,请点击启用自动删除切换开关,以切换到关闭位置。
如需完成未来预留请求草稿的创建,请点击保存草稿。
此时会打开预留页面。创建未来预留请求最多可能需要一分钟才能完成。
gcloud
如需通过指定实例模板创建单项目未来预留请求,请使用
gcloud beta compute future-reservations create
命令。如需通过指定实例模板而不添加任何可选标志来创建未来预留请求草稿,并在预留期结束时自动删除自动创建的预留,请运行以下命令:
gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \ --auto-delete-auto-created-reservations \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --start-time=START_TIME \ --end-time=END_TIME \ --total-count=TOTAL_COUNT \ --zone=ZONE
替换以下内容:
FUTURE_RESERVATION_NAME
:未来预留请求的名称。MACHINE_TYPE
:要用于每个预留虚拟机的机器类型。
PROJECT_ID
:您要预留资源的项目的 ID 和实例模板所在的项目。LOCATION
:实例模板的位置。请指定以下某个值:对于区域级实例模板:
regions/REGION
。将REGION
替换为实例模板所在的区域。如果您指定了区域级实例模板,则只能在该模板所在的区域内创建未来预留请求。对于全球实例模板:
global
。
INSTANCE_TEMPLATE_NAME
:现有实例模板的名称。
START_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
。
开始时间不能比您提交未来预留请求以供审核的日期和时间晚 1 年。为了在未来预留请求获得批准之后且其进入锁定时间之前有足够的时间视需要取消、删除或修改未来预留请求,请指定开始时间的建议值。
END_TIME
:采用 RFC 3339 时间戳格式的预留期结束时间。如需提高在提交请求后Google Cloud 批准该请求的可能性,请指定最短预留期。如需指定时长(而非结束时间),请将--end-time
标志替换为--duration=END_DURATION
标志。将END_DURATION
替换为时长,以秒为单位。例如,指定1209600
表示 1,209,600 秒(14 天)。如需提高在提交未来预留请求进行审核后 Google Cloud 批准该请求的可能性,请指定建议的最短时长。
TOTAL_COUNT
:您要预留的虚拟机总数。ZONE
:预留资源的可用区。
例如,假设您想在可用区
us-central1-a
中创建名为fr-01
的未来预留请求草稿,其中包含以下属性:从世界协调时间 (UTC) 2024 年 11 月 10 日零点开始到世界协调时间 (UTC) 2024 年 12 月 10 日零点结束的预留期。
总计 80 个虚拟机。
- 来自区域
us-central1
的区域级实例模板。
- 已启用自动删除选项。自动创建的预留会在预留期结束时删除。
如需创建
fr-01
,请运行以下命令:gcloud beta compute future-reservations create fr-01 \ --auto-delete-auto-created-reservations \ --source-instance-template=projects/example-project/regions/us-central1/instanceTemplates/example-template \ --start-time=2024-11-10T00:00:00Z \ --end-time=2024-12-10T00:00:00Z \ --total-count=80 \ --zone=us-central1-a
您可以选择执行以下一项或多项操作:
如需在预留期结束时间后删除自动创建预留,请选择以下方法之一:
如需在预留期结束时间之后的特定日期和时间删除自动创建的预留,请添加
--auto-created-reservations-delete-time
标志。gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \ --auto-created-reservations-delete-time=AUTO_CREATED_RESERVATIONS_DELETE_TIME \ --auto-delete-auto-created-reservations \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --start-time=START_TIME \ --end-time=END_TIME \ --total-count=TOTAL_COUNT \ --zone=ZONE
将 AUTO_CREATED_RESERVATIONS_DELETE_TIME 替换为采用 RFC 3339 时间戳格式的日期和时间。
如需在预留期结束时间后的特定时长之后删除自动创建的预留,请添加
--auto-created-reservations-duration
标志。gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \ --auto-created-reservations-duration=DURATION_BEFORE_DELETE \ --auto-delete-auto-created-reservations \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --start-time=START_TIME \ --end-time=END_TIME \ --total-count=TOTAL_COUNT \ --zone=ZONE
将 DURATION_BEFORE_DELETE 替换为以天、小时、分钟或秒为单位的时长。例如,指定
30m
表示 30 分钟,或指定1d2h3m4s
表示 1 天 2 小时 3 分钟 4 秒。
如需为自动创建的预留停用自动删除选项,请将
--auto-delete-auto-created-reservations
标志替换为--no-auto-delete-auto-created-reservations
标志。gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \ --no-auto-delete-auto-created-reservations \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --start-time=START_TIME \ --end-time=END_TIME \ --total-count=TOTAL_COUNT \ --zone=ZONE
如需为自动创建的预留指定名称前缀,请添加
--name-prefix
标志。gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \ --auto-delete-auto-created-reservations \ --name-prefix=NAME_PREFIX \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --start-time=START_TIME \ --end-time=END_TIME \ --total-count=TOTAL_COUNT \ --zone=ZONE
将
NAME_PREFIX
替换为每个自动创建的预留的名称前缀。为了帮助您识别为此未来预留请求自动创建的预留, Google Cloud 建议指定唯一的名称前缀。
REST
要通过指定实例模板创建单项目未来预留请求,请向
beta.futureReservations.insert
方法发出POST
请求。如需通过指定实例模板而不添加任何可选字段来创建未来预留请求草稿,请发出
POST
请求,如下所示:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations { "autoDeleteAutoCreatedReservations": AUTO_DELETE_AUTO_CREATED_RESERVATIONS, "name": "FUTURE_RESERVATION_NAME", "specificSkuProperties": { "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME", "totalCount": TOTAL_COUNT }, "timeWindow": { "startTime": "START_TIME", "endTime": "END_TIME" } }
替换以下内容:
PROJECT_ID
:您要在其中预留资源且实例模板所在的项目的 ID。ZONE
:预留资源的可用区。AUTO_DELETE_AUTO_CREATED_RESERVATIONS
:如果您将此字段设置为true
,则 Compute Engine 会在预留期结束时间后的两小时内自动删除此未来预留的自动创建预留。如果要将自动创建的预留附加到承诺,请将此字段设置为false
。
LOCATION
:实例模板的位置。请指定以下某个值:对于区域级实例模板:
regions/REGION
。将REGION
替换为实例模板所在的区域。如果您指定了区域级实例模板,则只能在该模板所在的区域内创建未来预留请求。对于全球实例模板:
global
。
INSTANCE_TEMPLATE_NAME
:现有实例模板的名称。
TOTAL_COUNT
:您要预留的虚拟机总数。START_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
。
开始时间不能比您提交未来预留请求以供审核的日期和时间晚 1 年。为了在未来预留请求获得批准之后且其进入锁定时间之前有足够的时间视需要取消、删除或修改未来预留请求,请指定开始时间的建议值。
END_TIME
:采用 RFC 3339 时间戳格式的预留期结束时间。如需提高在提交请求后Google Cloud 批准该请求的可能性,请指定最短预留期。如需指定时长(而非结束时间),您可以将endTime
字段替换为duration
字段:"duration": { "seconds": END_DURATION }
将
END_DURATION
替换为持续时间,以秒为单位。例如,指定1209600
表示 1,209,600 秒(14 天)。
例如,假设您想在可用区
us-central1-a
中创建名为fr-01
的未来预留请求草稿,其中包含以下属性:从世界协调时间 (UTC) 2024 年 11 月 10 日零点开始到世界协调时间 (UTC) 2024 年 12 月 10 日零点结束的预留期。
总计 80 个虚拟机。
- 来自区域
us-central1
的区域级实例模板。
- 已启用自动删除选项。自动创建的预留会在预留期结束时删除。
要创建
fr-01
,请发出POST
请求,如下所示:POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/futureReservations { "autoDeleteAutoCreatedReservations": true, "name": "fr-01", "specificSkuProperties": { "sourceInstanceTemplate": "projects/example-project/regions/us-central1/instanceTemplates/example-template", "totalCount": 80 }, "timeWindow": { "startTime": "2024-11-10T00:00:00Z", "endTime": "2024-12-10T00:00:00Z" } }
您可以选择执行以下一项或多项操作:
如需为自动创建的预留指定名称前缀,请添加
namePrefix
字段。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations { "autoDeleteAutoCreatedReservations": AUTO_DELETE_AUTO_CREATED_RESERVATIONS, "name": "FUTURE_RESERVATION_NAME", "namePrefix": "NAME_PREFIX", "specificSkuProperties": { "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME", "totalCount": TOTAL_COUNT }, "timeWindow": { "startTime": "START_TIME", "endTime": "END_TIME" } }
将
NAME_PREFIX
替换为每个自动创建的预留的名称前缀。为了帮助您识别为此未来预留请求自动创建的预留, Google Cloud 建议指定唯一的名称前缀。
如需在预留期结束时间后删除自动创建预留,请选择以下方法之一:
如需在预留期结束时间后的特定时间删除自动创建的预留,请将
autoDeleteAutoCreatedReservations
设置为true
并添加autoCreatedReservationsDeleteTime
字段。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations { "autoCreatedReservationsDeleteTime": "DELETE_TIME", "autoDeleteAutoCreatedReservations": true, "name": "FUTURE_RESERVATION_NAME", "specificSkuProperties": { "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME", "totalCount": TOTAL_COUNT }, "timeWindow": { "startTime": "START_TIME", "endTime": "END_TIME" } }
将
DELETE_TIME
替换为 Compute Engine 删除自动创建预留的日期和时间。日期和时间必须采用 RFC 3339 时间戳格式。如需在预留期开始时间起的特定时长后删除自动创建的预留,请将
autoDeleteAutoCreatedReservations
设置为true
并添加autoCreatedReservationsDuration
字段。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations { "autoCreatedReservationsDuration": { "seconds": "DURATION_BEFORE_DELETE" }, "autoDeleteAutoCreatedReservations": true, "name": "FUTURE_RESERVATION_NAME", "specificSkuProperties": { "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME", "totalCount": TOTAL_COUNT }, "timeWindow": { "startTime": "START_TIME", "endTime": "END_TIME" } }
将
DURATION_BEFORE_DELETE
替换为持续时间,以秒为单位。例如,指定604800
表示 604,800 秒(7 天)。
创建未来预留请求草稿后,您可以确定 Compute Engine 将为该请求预配的虚拟机数量。
指定现有虚拟机
您只能根据现有虚拟机在与该虚拟机相同的可用区中创建未来预留请求草稿。
在未来预留请求获得 Google Cloud 批准并进入预留期后,您可以通过创建其属性与参考虚拟机匹配的虚拟机来使用该请求自动创建的预留。为此,您可以采取以下任一做法:
按如下所示创建和使用实例模板:
根据参考虚拟机创建实例模板,而不替换参考虚拟机的属性。
通过执行以下一项或两项操作,使用新创建的模板创建虚拟机:
根据参考虚拟机创建虚拟机,同时确保新虚拟机和参考虚拟机的属性完全匹配。
如需创建使用现有虚拟机的属性的单项目未来预留请求,请执行以下操作:
在 Google Cloud 控制台中,前往预留页面。
点击未来预留标签页。
点击
创建未来预留。创建未来预留页面会打开。
在名称部分,输入未来预留请求的名称。
在前缀部分,输入名称前缀。此未来预留请求中每个自动创建预留的名称以此前缀开头。
在区域和可用区部分,选择要在其中预留资源的区域和可用区。
在开始时间部分,输入预留期的开始时间。开始时间不能比您提交未来预留请求以供审核的日期和时间晚 1 年。为了在未来预留进入锁定时间之前有足够的时间视需要修改、取消或删除未来预留,请指定开始时间的建议值。
在结束时间部分,输入预留期的结束时间。在持续时间摘要部分中,您可以查看预留期时长。如需提高在提交未来预留请求进行审核后 Google Cloud 批准该请求的可能性,请指定预留期的推荐值。
在共享类型部分中,选择本地(如果尚未选择)。
对于所需总容量,输入您要为此未来预留请求中指定的期限、虚拟机配置和项目预留的虚拟机总数。
在机器配置部分中,执行以下操作:
选择使用现有虚拟机。
在现有虚拟机部分,选择要使用其属性创建预留的虚拟机。
在自动生成的预留自动删除部分,执行以下操作之一:
如需使 Compute Engine 能够自动删除未来预留请求的自动创建预留,请执行以下操作:
点击启用自动删除切换开关,以切换到开启位置(如果尚未设置为开启)。
可选:对于自动删除时间,输入删除自动创建预留的日期和时间。该日期和时间必须晚于预留期的结束时间。如果您将此字段留空,则自动创建的预留将在预留期结束时间之后 2 小时内删除。
否则,请点击启用自动删除切换开关,以切换到关闭位置。
如需完成未来预留请求草稿的创建,请点击保存草稿。
此时会打开预留页面。创建未来预留请求最多可能需要一分钟才能完成。
创建未来预留请求草稿后,您可以确定 Compute Engine 将为该请求预配的虚拟机数量。
直接指定属性
如果您要将为未来预留预配的自动创建预留附加到承诺,则必须停用自动删除选项。如需了解详情,请参阅创建后的限制。
如需通过直接指定属性来创建单项目未来预留,请选择以下选项之一:
控制台
在 Google Cloud 控制台中,前往预留页面。
点击未来预留标签页。
点击
创建未来预留。创建未来预留页面会打开。
在名称部分,输入未来预留请求的名称。
在前缀部分,输入名称前缀。此未来预留请求中每个自动创建预留的名称以此前缀开头。
在区域和可用区部分,选择要在其中预留资源的区域和可用区。
在开始时间部分,输入预留期的开始时间。开始时间不能比您提交未来预留请求以供审核的日期和时间晚 1 年。为了在未来预留进入锁定时间之前有足够的时间视需要修改、取消或删除未来预留,请指定开始时间的建议值。
在结束时间部分,输入预留期的结束时间。在持续时间摘要部分中,您可以查看预留期时长。如需提高在提交未来预留请求进行审核后 Google Cloud 批准该请求的可能性,请指定预留期的推荐值。
在共享类型部分中,选择本地(如果尚未选择)。
对于所需总容量,输入您要为此未来预留请求中指定的期限、虚拟机配置和项目预留的虚拟机总数。
在机器配置部分中,执行以下操作:
选择指定机器类型(如果尚未选择)。
指定要用于预留虚拟机的机器类型。
在自动生成的预留自动删除部分,执行以下操作之一:
如需使 Compute Engine 能够自动删除未来预留请求的自动创建预留,请执行以下操作:
点击启用自动删除切换开关,以切换到开启位置(如果尚未设置为开启)。
可选:对于自动删除时间,输入删除自动创建预留的日期和时间。该日期和时间必须晚于预留期的结束时间。如果您将此字段留空,则自动创建的预留将在预留期结束时间之后 2 小时内删除。
否则,请点击启用自动删除切换开关,以切换到关闭位置。
如需完成未来预留请求草稿的创建,请点击保存草稿。
此时会打开预留页面。创建未来预留请求最多可能需要一分钟才能完成。
gcloud
如需通过直接指定属性来创建单项目未来预留请求,请使用
gcloud beta compute future-reservations create
命令。如需通过直接指定属性而不添加任何可选标志来创建未来预留请求草稿,并在预留期结束时自动删除自动创建的预留,请运行以下命令:
gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \ --auto-delete-auto-created-reservations \ --machine-type=MACHINE_TYPE \ --start-time=START_TIME \ --end-time=END_TIME \ --total-count=TOTAL_COUNT \ --zone=ZONE
替换以下内容:
FUTURE_RESERVATION_NAME
:未来预留请求的名称。MACHINE_TYPE
:要用于每个预留虚拟机的机器类型。
START_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
。
开始时间不能比您提交未来预留请求以供审核的日期和时间晚 1 年。为了在未来预留请求获得批准之后且其进入锁定时间之前有足够的时间视需要取消、删除或修改未来预留请求,请指定开始时间的建议值。
END_TIME
:采用 RFC 3339 时间戳格式的预留期结束时间。如需提高在提交请求后Google Cloud 批准该请求的可能性,请指定最短预留期。如需指定时长(而非结束时间),请将--end-time
标志替换为--duration=END_DURATION
标志。将END_DURATION
替换为时长,以秒为单位。例如,指定1209600
表示 1,209,600 秒(14 天)。如需提高在提交未来预留请求进行审核后 Google Cloud 批准该请求的可能性,请指定建议的最短时长。
TOTAL_COUNT
:您要预留的虚拟机总数。ZONE
:预留资源的可用区。
例如,假设您想在可用区
us-central1-a
中创建名为fr-01
的未来预留请求草稿,其中包含以下属性:从世界协调时间 (UTC) 2024 年 11 月 10 日零点开始到世界协调时间 (UTC) 2024 年 12 月 10 日零点结束的预留期。
总计 80 个虚拟机。
- 具有 4 个 vCPU 的 N2 预定义机器类型。
- 已启用自动删除选项。自动创建的预留会在预留期结束时删除。
如需创建
fr-01
,请运行以下命令:gcloud beta compute future-reservations create fr-01 \ --auto-delete-auto-created-reservations \ --machine-type=n2-standard-4 \ --start-time=2024-11-10T00:00:00Z \ --end-time=2024-12-10T00:00:00Z \ --total-count=80 \ --zone=us-central1-a
您可以选择执行以下一项或多项操作:
如需将 GPU 挂接到预留的 N1 虚拟机,请添加
--accelerator
标志。gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \ --accelerator=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE \ --auto-delete-auto-created-reservations \ --machine-type=MACHINE_TYPE \ --start-time=START_TIME \ --end-time=END_TIME \ --total-count=TOTAL_COUNT \ --zone=ZONE
替换以下内容:
NUMBER_OF_ACCELERATORS
:要为每个预留虚拟机添加的 GPU 数量。ACCELERATOR_TYPE
:N1 虚拟机支持的 GPU 模型。为避免出错,请验证您选择的 GPU 模型在您创建未来预留请求的可用区中是否可用。
如需在预留期结束时间后删除自动创建预留,请选择以下方法之一:
如需在预留期结束时间之后的特定日期和时间删除自动创建的预留,请添加
--auto-created-reservations-delete-time
标志。gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \ --auto-created-reservations-delete-time=AUTO_CREATED_RESERVATIONS_DELETE_TIME \ --auto-delete-auto-created-reservations \ --machine-type=MACHINE_TYPE \ --start-time=START_TIME \ --end-time=END_TIME \ --total-count=TOTAL_COUNT \ --zone=ZONE
将 AUTO_CREATED_RESERVATIONS_DELETE_TIME 替换为采用 RFC 3339 时间戳格式的日期和时间。
如需在预留期结束时间后的特定时长之后删除自动创建的预留,请添加
--auto-created-reservations-duration
标志。gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \ --auto-created-reservations-duration=DURATION_BEFORE_DELETE \ --auto-delete-auto-created-reservations \ --machine-type=MACHINE_TYPE \ --start-time=START_TIME \ --end-time=END_TIME \ --total-count=TOTAL_COUNT \ --zone=ZONE
将 DURATION_BEFORE_DELETE 替换为以天、小时、分钟或秒为单位的时长。例如,指定
30m
表示 30 分钟,或指定1d2h3m4s
表示 1 天 2 小时 3 分钟 4 秒。
如需为自动创建的预留停用自动删除选项,请将
--auto-delete-auto-created-reservations
标志替换为--no-auto-delete-auto-created-reservations
标志。gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \ --no-auto-delete-auto-created-reservations \ --machine-type=MACHINE_TYPE \ --start-time=START_TIME \ --end-time=END_TIME \ --total-count=TOTAL_COUNT \ --zone=ZONE
如需将本地 SSD 磁盘挂接到默认不包含本地 SSD 磁盘的机器类型,请添加
--local-ssd
标志。您只能挂接 375 GB 的本地 SSD 磁盘。gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \ --auto-delete-auto-created-reservations \ --local-ssd=count=NUMBER_OF_LOCAL_SSD_DISKS,size=375,interface=INTERFACE_TYPE \ --machine-type=MACHINE_TYPE \ --start-time=START_TIME \ --end-time=END_TIME \ --total-count=TOTAL_COUNT \ --zone=ZONE
替换以下内容:
NUMBER_OF_LOCAL_SSD_DISKS
:要挂接的本地 SSD 磁盘的数量。INTERFACE_TYPE
:您希望本地 SSD 磁盘使用的磁盘接口类型,以及您指定的机器类型支持的磁盘接口类型。请指定以下某个值:对于 NVME 磁盘接口:
nvme
对于 SCSI 磁盘接口:
scsi
如需让预留的虚拟机使用特定的满足最低要求的 CPU 平台(而不是该可用区的默认 CPU 平台),请添加
--min-cpu-platform
标志。gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \ --auto-delete-auto-created-reservations \ --machine-type=MACHINE_TYPE \ --min-cpu-platform="MIN_CPU_PLATFORM" \ --start-time=START_TIME \ --end-time=END_TIME \ --total-count=TOTAL_COUNT \ --zone=ZONE
将 MIN_CPU_PLATFORM 替换为满足最低要求的 CPU 平台。 为确保 CPU 平台在要预留资源的可用区可用,请按可用区查看可用的 CPU 平台。
如需为自动创建的预留指定名称前缀,请添加
--name-prefix
标志。gcloud beta compute future-reservations create FUTURE_RESERVATION_NAME \ --auto-delete-auto-created-reservations \ --machine-type=MACHINE_TYPE \ --name-prefix=NAME_PREFIX \ --start-time=START_TIME \ --end-time=END_TIME \ --total-count=TOTAL_COUNT \ --zone=ZONE
将
NAME_PREFIX
替换为每个自动创建的预留的名称前缀。为了帮助您识别为此未来预留请求自动创建的预留, Google Cloud 建议指定唯一的名称前缀。
REST
如需通过直接指定属性创建单项目未来预留请求,请向
beta.futureReservations.insert
方法发出POST
请求。如需通过直接指定属性而不添加任何可选字段来创建未来预留请求草稿,请发出
POST
请求,如下所示:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations { "autoDeleteAutoCreatedReservations": AUTO_DELETE_AUTO_CREATED_RESERVATIONS, "name": "FUTURE_RESERVATION_NAME", "specificSkuProperties": { "instanceProperties": { "machineType": "MACHINE_TYPE" }, "totalCount": TOTAL_COUNT }, "timeWindow": { "startTime": "START_TIME", "endTime": "END_TIME" } }
替换以下内容:
PROJECT_ID
:您要在其中预留资源的项目的 ID。ZONE
:预留资源的可用区。AUTO_DELETE_AUTO_CREATED_RESERVATIONS
:如果您将此字段设置为true
,则 Compute Engine 会在预留期结束时间后的两小时内自动删除此未来预留的自动创建预留。如果要将自动创建的预留附加到承诺,请将此字段设置为false
。
TOTAL_COUNT
:您要预留的虚拟机总数。START_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
。
开始时间不能比您提交未来预留请求以供审核的日期和时间晚 1 年。为了在未来预留请求获得批准之后且其进入锁定时间之前有足够的时间视需要取消、删除或修改未来预留请求,请指定开始时间的建议值。
END_TIME
:采用 RFC 3339 时间戳格式的预留期结束时间。如需提高在提交请求后Google Cloud 批准该请求的可能性,请指定最短预留期。如需指定时长(而非结束时间),您可以将endTime
字段替换为duration
字段:"duration": { "seconds": END_DURATION }
将
END_DURATION
替换为持续时间,以秒为单位。例如,指定1209600
表示 1,209,600 秒(14 天)。
例如,假设您想在可用区
us-central1-a
中创建名为fr-01
的未来预留请求草稿,其中包含以下属性:从世界协调时间 (UTC) 2024 年 11 月 10 日零点开始到世界协调时间 (UTC) 2024 年 12 月 10 日零点结束的预留期。
总计 80 个虚拟机。
- 具有 4 个 vCPU 的 N2 预定义机器类型。
- 已启用自动删除选项。自动创建的预留会在预留期结束时删除。
要创建
fr-01
,请发出POST
请求,如下所示:POST https://compute.googleapis.com/compute/beta/projects/example-project/zones/us-central1-a/futureReservations { "autoDeleteAutoCreatedReservations": true, "name": "fr-01", "specificSkuProperties": { "instanceProperties": { "machineType": "n2-standard-4" }, "totalCount": 80 }, "timeWindow": { "startTime": "2024-11-10T00:00:00Z", "endTime": "2024-12-10T00:00:00Z" } }
您可以选择执行以下一项或多项操作:
如需为自动创建的预留指定名称前缀,请添加
namePrefix
字段。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations { "autoDeleteAutoCreatedReservations": AUTO_DELETE_AUTO_CREATED_RESERVATIONS, "name": "FUTURE_RESERVATION_NAME", "namePrefix": "NAME_PREFIX", "specificSkuProperties": { "instanceProperties": { "machineType": "MACHINE_TYPE" }, "totalCount": TOTAL_COUNT }, "timeWindow": { "startTime": "START_TIME", "endTime": "END_TIME" } }
将
NAME_PREFIX
替换为每个自动创建的预留的名称前缀。为了帮助您识别为此未来预留请求自动创建的预留, Google Cloud 建议指定唯一的名称前缀。
如需将 GPU 挂接到预留的 N1 虚拟机,请添加
guestAccelerators
字段。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations { "autoDeleteAutoCreatedReservations": AUTO_DELETE_AUTO_CREATED_RESERVATIONS, "name": "FUTURE_RESERVATION_NAME", "specificSkuProperties": { "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": NUMBER_OF_ACCELERATORS, "acceleratorType": "ACCELERATOR_TYPE" } ], "machineType": "MACHINE_TYPE" }, "totalCount": TOTAL_COUNT }, "timeWindow": { "startTime": "START_TIME", "endTime": "END_TIME" } }
替换以下内容:
NUMBER_OF_ACCELERATORS
:要为每个预留虚拟机添加的 GPU 数量。ACCELERATOR_TYPE
:N1 虚拟机支持的 GPU 模型。为避免出错,请验证您选择的 GPU 模型在您创建未来预留请求的可用区中是否可用。
如需将本地 SSD 磁盘挂接到默认不包含本地 SSD 磁盘的机器类型,请在请求正文中添加
localSsds
字段。您只能挂接 375 GB 的本地 SSD 磁盘。例如,如需在创建未来预留请求草稿时指定两个本地 SSD 磁盘,请发出
POST
请求,如下所示:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations { "autoDeleteAutoCreatedReservations": AUTO_DELETE_AUTO_CREATED_RESERVATIONS, "name": "FUTURE_RESERVATION_NAME", "specificSkuProperties": { "instanceProperties": { "localSsds": [ { "diskSizeGb": "375", "interface": "INTERFACE_TYPE" }, { "diskSizeGb": "375", "interface": "INTERFACE_TYPE" } ], "machineType": "MACHINE_TYPE" }, "totalCount": TOTAL_COUNT }, "timeWindow": { "startTime": "START_TIME", "endTime": "END_TIME" } }
将
INTERFACE_TYPE
替换为您希望本地 SSD 磁盘使用的磁盘接口类型,以及您指定的机器类型支持的磁盘接口类型。请指定以下某个值:对于 NVME 磁盘接口:
NVME
对于 SCSI 磁盘接口:
SCSI
如需让预留的虚拟机使用特定的满足最低要求的 CPU 平台(而不是该可用区的默认 CPU 平台),请添加
minCpuPlatform
标志。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations { "autoDeleteAutoCreatedReservations": AUTO_DELETE_AUTO_CREATED_RESERVATIONS, "name": "FUTURE_RESERVATION_NAME", "specificSkuProperties": { "instanceProperties": { "machineType": "MACHINE_TYPE", "minCpuPlatform": "MINIMUM_CPU_PLATFORM" }, "totalCount": TOTAL_COUNT }, "timeWindow": { "startTime": "START_TIME", "endTime": "END_TIME" } }
将 MIN_CPU_PLATFORM 替换为满足最低要求的 CPU 平台。 如需验证 CPU 平台在要预留资源的可用区中是否可用,请按可用区查看可用的 CPU 平台。
如需在预留期结束时间后删除自动创建预留,请选择以下方法之一:
如需在预留期结束时间后的特定时间删除自动创建的预留,请将
autoDeleteAutoCreatedReservations
设置为true
并添加autoCreatedReservationsDeleteTime
字段。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations { "autoCreatedReservationsDeleteTime": "DELETE_TIME", "autoDeleteAutoCreatedReservations": true, "name": "FUTURE_RESERVATION_NAME", "specificSkuProperties": { "instanceProperties": { "machineType": "MACHINE_TYPE" }, "totalCount": TOTAL_COUNT }, "timeWindow": { "startTime": "START_TIME", "endTime": "END_TIME" } }
将
DELETE_TIME
替换为 Compute Engine 删除自动创建预留的日期和时间。日期和时间必须采用 RFC 3339 时间戳格式。如需在预留期开始时间起的特定时长后删除自动创建的预留,请将
autoDeleteAutoCreatedReservations
设置为true
并添加autoCreatedReservationsDuration
字段。POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations { "autoCreatedReservationsDuration": { "seconds": "DURATION_BEFORE_DELETE" }, "autoDeleteAutoCreatedReservations": true, "name": "FUTURE_RESERVATION_NAME", "specificSkuProperties": { "instanceProperties": { "machineType": "MACHINE_TYPE" }, "totalCount": TOTAL_COUNT }, "timeWindow": { "startTime": "START_TIME", "endTime": "END_TIME" } }
将
DURATION_BEFORE_DELETE
替换为持续时间,以秒为单位。例如,指定604800
表示 604,800 秒(7 天)。
创建未来预留请求草稿后,您可以确定 Compute Engine 将为该请求预配的虚拟机数量。
提交请求草稿
在未来预留请求已提交、获得 Google Cloud的批准以及过了其锁定时间之后,您可以删除未来预留,并且只有在未来预留的预留期结束之后才能删除其自动创建预留。如果您需要创建另一个具有相同属性的未来预留,则删除现有未来预留非常有用。因此,在创建未来预留请求之前,请确保满足以下条件:
项目中的任何现有预留或未来预留都会限制您可以创建的未来预留请求的共享设置。为了确保您可以成功创建未来预留请求,并且您的请求不会在您与之共享未来预留请求或预留的其他项目中出现问题,请参阅限制。
无论是否使用自动创建预留,您都必须承诺为 Compute Engine 在整个预留期预配的预留资源付费。有关详情,请参阅结算。
如果您想在提交未来预留请求草稿进行审核时修改一个或多个属性,请改为参阅修改未来预留请求。
如需将未来预留请求草稿提交给 Google Cloud 进行审核,请选择以下选项之一:
控制台
在 Google Cloud 控制台中,前往预留页面。
点击未来预留标签页。
在名称列中,点击采购状态为正在草拟的未来预留请求的名称。
系统会打开未来预留页面,其中包含未来预留请求的详细信息。
点击
修改草稿。系统会打开用于更新未来预留请求草稿的页面。
如需提交未来预留请求草稿进行审核,请点击提交。
此时会打开预留页面。在您刚刚提交的未来预留请求的状态列中,采购状态设置为待审批。
gcloud
如需提交未来预留请求草稿以供审核,请使用
gcloud beta compute future-reservations update
命令,并将--planning-status
标志设置为SUBMITTED
。gcloud beta compute future-reservations update FUTURE_RESERVATION_NAME \ --planning-status=SUBMITTED \ --zone=ZONE
替换以下内容:
FUTURE_RESERVATION_NAME
:现有未来预留请求草稿的名称。ZONE
:未来预留请求所在的可用区。
REST
如需提交未来预留请求草稿进行审核,请向
beta.futureReservations.update
方法发出PATCH
请求。在请求正文中,添加planningStatus
字段并将其设置为SUBMITTED
。PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/futureReservations/FUTURE_RESERVATION_NAME?updateMask=planningStatus { "name": "FUTURE_RESERVATION_NAME", "planningStatus": "SUBMITTED" }
替换以下内容:
PROJECT_ID
:未来预留请求所在项目的 ID。ZONE
:未来预留请求所在的可用区。FUTURE_RESERVATION_NAME
:现有未来预留请求草稿的名称。
提交未来预留请求草稿以供审核后,您可以执行以下操作:
如需监控请求的采购状态并查看Google Cloud 是批准还是拒绝您的请求,请查看未来预留请求的详细信息。
如需阻止 Google Cloud 审核您的请求并阻止 Compute Engine 预配请求的容量,请取消或删除未来预留请求。
问题排查
如果您在创建未来预留请求时遇到错误,请参阅如何排查未来预留请求问题。
如果您在排查问题后仍遇到问题,请与您的客户支持团队或销售团队联系。
后续步骤
了解如何查看未来预留请求。
了解如何修改未来预留请求。
了解如何取消或删除未来预留请求。
到预留期的开始时间后,您就可以了解如何使用自动创建预留。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-09-05。
-